oracle中utl_raw

RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。
LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节
建表操作:
create table raw_test (id number, raw_date raw(10));
插入raw数据操作:
insert into raw_test values (1, hextoraw('abc'));
insert into raw_test values (utl_raw.cast_to_raw('hello'));
删除表操作:
drop table raw_test;
当使用HEXTORAW时,会把字符串中数据当作16进制数。

而使用UTL_RAW.CAST_TO_RAW时,直接把字符串中每个字符的ASCII码存放到RAW类型的字段中.

用到的码表通常为GB2312码表.

RAW 是用来存储二进制数据的。同 VARCHAR2, 它也是一个可变长度的数据类型

4、位操作函数
  FUNCTION bit_and(r1 IN RAW,
                   r2 IN RAW) RETURN RAW;
  FUNCTION bit_or(r1 IN RAW,
                  r2 IN RAW) RETURN RAW;
  FUNCTION bit_xor(r1 IN RAW,
                   r2 IN RAW) RETURN RAW;
如:
select utl_raw.bit_and('12344321','0f') from dual;
select utl_raw.bit_or('12344321','0f') from dual;
select utl_raw.bit_xor('12344321','0f') from dual;
结果分别为:
02344321、1F344321、1D344321

原文地址:https://www.cnblogs.com/quzq/p/11404194.html