ORACLE的raw属性

网上说RAW类型在网络数据传送的时候可以避免字节的字符集转换,在mssql中使用的GUID类型在oracle中对应的也是raw类型(一般是raw(16)),如果此时使用连接查询将raw类型的字段和varchar类型的字段相等作为条件,可以不需要将raw类型转换为varchar不然也会导致数据查询后结果不准确,此外,需要两种类型的互相转换的话,请参照如下写法:

  1. UTL_RAW.CAST_TO_RAW

  该函数按照缺省字符集(一般为GB2312),将VARCHAR2字符串转换为RAW。

  insert into cmpp_submit (dest_terminal_id,msg_content) values('13001081371',UTL_RAW.CAST_TO_RAW('您好!'));

  2. UTL_RAW.CAST_TO_VARCHAR2

  该函数按照缺省字符集合(一般为GB2312),将RAW转换为VARCHAR2。

  select UTL_RAW.CAST_TO_VARCHAR2(msg_content) from cmpp_deliver;

生成GUID使用的是SYS_GUID()方法,在raw类型的字段中看起来这个GUID会和正常的GUID有些不一样,如果是手工在这个类型的字段里面加入GUID,就会报类似不是正确的十六进制数据的错误

原文地址:https://www.cnblogs.com/llcdbk/p/6305559.html