Oracle中的Raw型別解釋

2022-09-09 03:51:09 字數 1140 閱讀 1109

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 目錄下,有許多檔案,其中有兩個大類 字元裝置檔案和塊裝置檔案。字元裝置特殊檔案進...