oracle中的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
varraw的oracle內部定義是: struct
oracle中的Raw型別解釋
raw,類似於char,宣告方式raw l l為長度,以位元組為單位,作為資料庫列最大2000,作為變數最大32767位元組。long raw,類似於long,作為資料庫列最大儲存2g位元組的資料,作為變數最大32760位元組 建表操作 create table raw test id number...
raw型別的使用問題
問題的起源是一條sql語句執行時用不了索引 select from gms ivc.ivc stock transaction where transaction id 8ae587d11c2b178d011c2b254f912740 計畫select statement,goal all rows...
RAW裝置與ORACLE的問答
1 什麼叫做裸裝置?裸裝置,也叫裸分割槽 原始分割槽 是一種沒有經過格式化,不被unix通過檔案系統來讀取的特殊字元裝置。它由應用程式負責對它進行讀寫操作。不經過檔案系統的緩衝。2 如何辨別裸裝置?在unix的 dev 目錄下,有許多檔案,其中有兩個大類 字元裝置檔案和塊裝置檔案。字元裝置特殊檔案進...