日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle中的Raw类型解释

發(fā)布時(shí)間:2024/8/26 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle中的Raw类型解释 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CAST

將某種數(shù)據(jù)類型的表達(dá)式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型。



RAW,類似于CHAR,聲明方式RAW(L),L為長度,以字節(jié)為單位,作為數(shù)據(jù)庫列最大2000,作為變量最大32767字節(jié)。?

LONG RAW,類似于LONG,作為數(shù)據(jù)庫列最大存儲(chǔ)2G字節(jié)的數(shù)據(jù),作為變量最大32760字節(jié)?
建表操作:?
create table raw_test (id number, raw_date raw(10));?
插入raw數(shù)據(jù)操作:?
insert into raw_test values (1, hextoraw('ff'));?
insert into raw_test values (utl_raw.cast_to_raw('051'));?
刪除表操作:?
drop table raw_test;?
當(dāng)使用HEXTORAW時(shí),會(huì)把字符串中數(shù)據(jù)當(dāng)作16進(jìn)制數(shù)。而使用UTL_RAW.CAST_TO_RAW時(shí),直接把字符串中每個(gè)字符的ASCII碼存放到RAW類型的字段中.?

可以使用dump函數(shù),查詢存儲(chǔ)情況:?
select id,raw_date, dump(raw_date, 16) dump_raw from raw_test;?

Oracle中RAW和Varchar2常用的兩個(gè)轉(zhuǎn)換函數(shù)???????????????????????????????????
1. UTL_RAW.CAST_TO_RAW?
該函數(shù)按照缺省字符集(一般為GB2312),將VARCHAR2字符串轉(zhuǎn)換為RAW。?
insert into cmpp_submit (dest_terminal_id,msg_content) values('13001081371',UTL_RAW.CAST_TO_RAW('您好!'));?
2. UTL_RAW.CAST_TO_VARCHAR2?
該函數(shù)按照缺省字符集合(一般為GB2312),將RAW轉(zhuǎn)換為VARCHAR2。?
select UTL_RAW.CAST_TO_VARCHAR2(msg_content) from cmpp_deliver;?

其實(shí)RAW和VARCHAR是類似的,只是存儲(chǔ)在RAW里的是二進(jìn)制值,在任何時(shí)候不會(huì)做自動(dòng)的字符集轉(zhuǎn)換,這是RAW和VARCHAR的不同,RAW只是一種外部類型,其內(nèi)部存儲(chǔ)是VARRAW?
VARCHAR的Oracle內(nèi)部定義是:struct { ub2 len; char arr[n] }?

VARRAW的ORACLE內(nèi)部定義是: struct { ub2 len; unsigned char arr[n] }


hextoraw:
英文介紹:HEXTORAW converts char containing hexadecimal digits in the CHAR, VARCHAR2, NCHAR, or?
?
NVARCHAR2 character set to a raw value.
This function does not support CLOB data directly. However, CLOBs can be passed in as arguments?
?
through implicit data conversion。
例子:
select hextoraw('1a') from dual
輸出:1A
這里輸入的參數(shù)必須要符合16進(jìn)制的格式,比如:1A,a1等,從前到后都是兩個(gè)字符組成一個(gè)十六進(jìn)制數(shù),若輸入?yún)?shù)為奇數(shù)個(gè)字符,則函數(shù)會(huì)在最前面添加0,比如:
select hextoraw('1ca') from dual;
輸出:01CA。
?
UTL_RAW.CAST_TO_RAW
英文介紹:
UTL_RAW.CAST_TO_RAW converts a value of data type VARCHAR2 into a raw value with the same number of bytes. ?The input value is treated as if it were composed of single 8-bit bytes, not characters. ?Multibyte character boundaries are ignored. ?The data is not modified in any way, it is only changed to data type RAW.
例子:
select UTL_RAW.CAST_TO_RAW('ABC') from dual;
輸出:414243
解釋:輸出的是輸入字符串的十六進(jìn)制的值

總結(jié)

以上是生活随笔為你收集整理的Oracle中的Raw类型解释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。