網上說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,就會報類似不是正確的十六進制數據的錯誤
