
# DBE_RAW
#### 接口介绍
高级功能包DBE_RAW支持的所有接口请参见[表 DBE_RAW]。
 表1DBE_RAW 
| 接口名称                                                                                                                                                                                                                                                                                                                                                                    | 描述                                |
|:---|:---|
| [DBE_RAW.CAST_FROM_BINARY_INTEGER_TO_RAW]                                                                                                                                                                                                         | 将INTEGER类型值转换为二进制表示形式（即RAW类型）。    |
| [DBE_RAW.CAST_FROM_RAW_TO_BINARY_INTEGER]                                                                                                                                                                                                         | 将二进制表示形式的整型值（即RAW类型）转换为INTEGER类型。 |
| [DBE_RAW.GET_LENGTH]                                                                                                                                                                                                                              | 获取RAW类型对象的长度。                     |
| [DBE_RAW.CAST_FROM_VARCHAR2_TO_RAW] | 将VARCHAR2类型值转化为二进制表示形式（即RAW类型）。   |
| [DBE_RAW.CAST_TO_VARCHAR2]                                                                                                                                                                                                                                                                 | 将RAW类型值转换成VARCHAR2类型。             |
| [DBE_RAW.BIT_OR]                                                                                                                                                                                                                                                                           | RAW类型按位或。                         |
| [DBE_RAW.SUBSTR]                                                                                                                                                                                                                                                                           | 求RAW类型子串。                         |
   
![](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
RAW类型的外部表现形式是十六进制，内部存储形式是二进制。例如一个RAW类型的数据11001011的表现形式为'CB'，即在实际的类型转换中输入的是'CB'。
- DBE_RAW.CAST_FROM_BINARY_INTEGER_TO_RAW 存储过程CAST_FROM_BINARY_INTEGER_TO_RAW将INTEGER类型值转换为二进制表示形式（即RAW类型）。
  DBE_RAW.CAST_FROM_BINARY_INTEGER_TO_RAW函数原型为：
  ```
  DBE_RAW.CAST_FROM_BINARY_INTEGER_TO_RAW (
  value          IN  INTEGER,
  endianess      IN  INTEGER DEFAULT 1)
  RETURN RAW;
  ```
   表2DBE_RAW.CAST_FROM_BINARY_INTEGER_TO_RAW接口参数说明 
  | 参数        | 描述                                            |
  |:---|:---|
  | value     | 待转成RAW类型的整型数值。                                |
  | endianess | 表示字节序的整型值1或2（1代表BIG_ENDIAN，2代表LITTLE-ENDIAN）。 |
     
  
- DBE_RAW.CAST_FROM_RAW_TO_BINARY_INTEGER 存储过程CAST_FROM_RAW_TO_BINARY_INTEGER将二进制表示形式的整型值（即RAW类型）转换为INTEGER类型。
  DBE_RAW.CAST_FROM_RAW_TO_BINARY_INTEGER函数原型为：
  ```
  DBE_RAW.CAST_FROM_RAW_TO_BINARY_INTEGER (
  value          IN  RAW,
  endianess      IN  INTEGER DEFAULT 1)
  RETURN BINARY_INTEGER;
  ```
   表3DBE_RAW.CAST_FROM_RAW_TO_BINARY_INTEGER接口参数说明 
  | 参数        | 描述                                            |
  |:---|:---|
  | value     | 二进制表示形式的整型值（即RAW类型）。                          |
  | endianess | 表示字节序的整型值1或2（1代表BIG_ENDIAN，2代表LITTLE-ENDIAN）。 |
     
  
- DBE_RAW.GET_LENGTH
  存储过程GET_LENGTH返回RAW类型对象的长度。
  DBE_RAW.GET_LENGTH函数原型为：
  ```
  DBE_RAW.GET_LENGTH(
  value     IN    RAW)
  RETURN INTEGER;
  ```
  表4DBE_RAW.GET_LENGTH接口参数说明 
  | 参数    | 描述      |
  |:---|:---|
  | value | RAW类型对象 |
     
  
- DBE_RAW.CAST_FROM_VARCHAR2_TO_RAW 存储过程CAST_FROM_VARCHAR2_TO_RAW将VARCHAR2类型的对象转换成RAW类型。
  DBE_RAW.CAST_FROM_VARCHAR2_TO_RAW函数原型为：
  ```
  DBE_RAW.CAST_TO_RAW(
  str     IN    VARCHAR2)
  RETURN RAW;
  ```
  表5DBE_RAW.CAST_FROM_VARCHAR2_TO_RAW接口参数说明 
  | 参数 | 描述               |
  |:---|:---|
  | c  | 待转换的VARCHAR2类型对象 |
     
  
- DBE_RAW.CAST_TO_VARCHAR2
  存储过程CAST_TO_VARCHAR2将RAW类型的对象转换成VARCHAR2类型。
  DBE_RAW.CAST_TO_VARCHAR2函数原型为：
  ```
  DBE_RAW.CAST_TO_VARCHAR2(
  str     IN    RAW)
  RETURN VARCHAR2;
  ```
  表6DBE_RAW.CAST_TO_VARCHAR2接口参数说明 
  | 参数  | 描述          |
  |:---|:---|
  | str | 待转换的RAW类型对象 |
     
  
- DBE_RAW.BIT_OR
  存储过程BIT_OR求两个RAW按位或的结果。
  DBE_RAW.BIT_OR函数原型为：
  ```
  DBE_RAW.BIT_OR(
  str1     IN    RAW,
  str2     IN    RAW)
  RETURN RAW;
  ```
  表7DBE_RAW.BIT_OR接口参数说明 
  | 参数   | 描述         |
  |:---|:---|
  | str1 | 按位或的第一个字符串 |
  | str2 | 按位或的第二个字符串 |
     
  
- DBE_RAW.SUBSTR
  存储过程SUBSTR将RAW类型的对象按起始位和长度截取。
  DBE_RAW.SUBSTR函数原型为：
  ```
  DBE_RAW.SUBSTR(
      IN lob_loc raw,
      IN off_set integer default 1,
      IN amount integer default 32767)
  RETURN RAW;
  ```
  表8DBE_RAW.SUBSTR接口参数说明 
  | 参数      | 描述              |
  |:---|:---|
  | lob_loc | 源raw字符串。        |
  | off_set | 子串的起始位置，默认值1。   |
  | amount  | 子串的长度，默认值32767。 |
     
  
 
#### 示例
```
--在存储过程中操作RAW数据
CREATE OR REPLACE PROCEDURE proc_raw
AS
str varchar2(100) := 'abcdef';
source raw(100);
amount integer;
BEGIN
source := dbe_raw.cast_from_varchar2_to_raw(str);--类型转换
amount := dbe_raw.get_length(source);--获取长度
dbe_output.print_line(amount);
END;
/
--调用存储过程
CALL proc_raw();
--删除存储过程
DROP PROCEDURE proc_raw;
```
