--raw类型
如果某个字节串算不上是文本,而且这个字符串不应在字符集发生变化时进行转换,那么这种字节串就应当存储在二进制的数据类型(RAW)中。
EODA@PROD1> create table t ( raw_data raw(16) ); --16字节
Table created.
EODA@PROD1> insert into t values ( sys_guid() ); --sys_guid()返回一个全局唯一的16字节RAW串
1 row created.
EODA@PROD1> select * from t; --看起来像是以字符串保存,而且超过了16字节
RAW_DATA
--------------------------------
401518970C5809ECE053479DA8C0C13F
EODA@PROD1> select dump(raw_data,16) from t; --Len=16字节
DUMP(RAW_DATA,16)
----------------------------------------------------------------------------------------------------
Typ=23 Len=16: 40,15,18,97,c,58,9,ec,e0,53,47,9d,a8,c0,c1,3f
EODA@PROD1> insert into t values ( 'abcdef' ); --插入的是16进制的AB CD EF
1 row created.
EODA@PROD1> insert into t values ( 'abcdefgh' ); --插入非16禁止则失败
insert into t values ( 'abcdefgh' )
*
ERROR at line 1:
ORA-01465: invalid hex number
EODA@PROD1> select rawtohex(raw_data) from t; --rawtohex()
RAWTOHEX(RAW_DATA)
--------------------------------
401518970C5809ECE053479DA8C0C13F
ABCDEF
EODA@PROD1> insert into t values ( hextoraw('abcdef') ); --hextoraw()将RAW转换为16进制
1 row created.
raw类型浅析
最新推荐文章于 2023-09-01 17:16:32 发布