亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Oracle Raw,number,varchar2...轉換

系統 1953 0

Oracle?Raw,number,varchar2... 轉換

? 在網絡中的計算機之間傳輸 RAW 數據時,或者使用 Oracle 實用程序將 RAW 數據從一個 數據庫 移到另一個數據庫時,Oracle 服務器不執行字符集轉換。存儲實際列值所需要的字節數大小隨每行大小而異,最多為 2,000 字節。
可能這樣的數據類型在數據庫效率上會提高, 而且對數據由于字符集的不同而導致的不一致的可能性在這邊也排除了。
這個字段在實際的用途中好像不多。
raw類型的介紹,在此引用了一下 網友的blog:
RAW,類似于CHAR,聲明方式RAW(L),L為長度,以字節為單位,作為數據庫列最大2000,作為變量最大32767字 節。
LONG RAW,類似于LONG,作為數據庫列最大存儲2G字節的數據,作為變量最大32760字節

==============================================================
SQL> create table datatype_test_raw(paddr raw(8));

Table created

SQL> insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw type test!'));

insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw type test!'))

ORA-01401: inserted value too large for column

SQL> alter table datatype_test_raw modify paddr raw(20);

Table altered

SQL> insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw type test!'));

insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw type test!'))

ORA-01401: inserted value too large for column

SQL> insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw test!'));

1 row inserted

SQL> commit;

Commit complete

SQL> select * from datatype_test_raw;

PADDR
----------------------------------------
54686973206973206120726177207465737421

SQL> select utl_raw.cast_to_varchar2(paddr) from datatype_test_raw;

UTL_RAW.CAST_TO_VARCHAR2(PADDR
--------------------------------------------------------------------------------
This is a raw test!

SQL> insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('中文測試'));

1 row inserted

SQL> commit;

Commit complete

SQL> select utl_raw.cast_to_varchar2(paddr) from datatype_test_raw;

UTL_RAW.CAST_TO_VARCHAR2(PADDR
--------------------------------------------------------------------------------
This is a raw test!

?


中文測試:

SQL> select paddr, utl_raw.cast_to_varchar2(paddr) from datatype_test_raw;

PADDR?????????????????????????? UTL_RAW.CAST_TO_VARCHAR2(PADDR
---------------------- --------------------------------------------------------------------------------
54686973206973206120726177207465737421 This is a raw test!
D6D0CEC4B2E2CAD4 中文測試

這里用到了兩個函數:
utl_raw.cast_to_raw([varchar2]);-- 將varchar2轉換為raw類型
utl_raw.cast_to_varchar2([raw]);--將raw轉換為varchar2類型
這 里varchar2的字符集一般是GB2312。

另外:
utl_raw包的幾個其他的函數用法:
utl_raw.cast_from_number([number]);
utl_raw.cast_to_number([number]);
位 操作:
utl_raw.bit_or();
utl_raw.bit_and();
utl_raw.bit_xor();

另 外還有轉換函數:
hextoraw(); --將對應16進制數轉換為raw

?

當使用HEXTORAW時,會把字符串中數據當作16進制數。而使用 UTL_RAW.CAST_TO_RAW時,直接把字符串中每個字符的ASCII碼存放到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('ff'));
insert into raw_test values (utl_raw.cast_to_raw('051'));
刪除表操作:
drop table raw_test;
當使用HEXTORAW時,會把字符串中數據當作16進制數。而使用UTL_RAW.CAST_TO_RAW時,直接把字符串中每個字符的 ASCII碼存放到RAW類型的字段中.

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

Oracle中RAW和Varchar2常用的兩個轉換函數??????????????????????????????????
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;

其實RAW和VARCHAR是類似的,只是存儲在RAW里的是二進制值,在任何時候不會做自動的字符集轉換,這是RAW和VARCHAR的不 同,RAW只是一種外部類型,其內部存儲是VARRAW
VARCHAR的Oracle內部定義是:struct { ub2 len; char arr[n] }
VARRAW的ORACLE內部定義是: struct { ub2 len; unsigned char arr[n] }

Oracle Raw,number,varchar2...轉換


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天视频国产免费入口 | 免费不卡毛片 | 国产免费一区二区在线看 | 欧美日韩亚洲综合在线一区二区 | 日韩欧美在线观看视频一区二区 | 色狠狠一区 | 久久亚洲一级α片 | 久久国产精品ww | 日韩精品一区二区三区四区 | 国产精品成人免费视频 | 91在线欧美 | 麻豆国产高清精品国在线 | 成人性一级视频在线观看 | 5060网永久免费一级毛片 | 婷婷色香五月激情综合2020 | 国产精品久久久久影院 | 色综合天天综合网国产人 | 欧美观看一级毛片 | 成 人 黄 色 大 片 | 欧美va亚洲va国产综合 | 国精品一区二区三区 | 国产精品久久久久久久9999 | 99久久中文字幕伊人情人 | a一级毛片视频免费看 | 成人毛片免费观看视频在线 | 不卡国产视频 | 亚洲黄页 | 在线观看成人影院 | 久久国产精品久久久久久久久久 | 国产在视频线在精品 | 天天草比| 成人在线亚洲 | 精品在线一区二区三区 | 久久日韩精品中文字幕网 | 亚洲精品在线网 | 五月激情丁香婷婷综合第九 | 国产欧美日韩中文久久 | 亚欧成人毛片一区二区三区四区 | 日日干夜夜骑 | 国产亚洲综合色就色 | 99国产福利视频在线观看 |