W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
RAW
是一種可變長度的數(shù)據(jù)類型,在不同平臺上傳輸時,傳送的都是二進制信息,即使字符集不同也不需要轉(zhuǎn)換。OceanBase 數(shù)據(jù)庫中用于保存二進制數(shù)據(jù)或字節(jié)字符串。
RAW
類似于 VARCHAR2
,聲明方式是 RAW(length)
,length
為長度,以字節(jié)為單位,作為數(shù)據(jù)庫列最大存儲 2000 個字節(jié),作為變量最大存儲 2000 字節(jié)。
RAW(length)
參數(shù) |
說明 |
---|---|
length |
表示長度,以字節(jié)為單位,作為數(shù)據(jù)庫列最大存儲 2000 字節(jié)的數(shù)據(jù),作為變量最大存儲 2000 字節(jié)的數(shù)據(jù)。 |
示例 1: 在 test_raw 表中聲明 RAW
型數(shù)據(jù),并向表中插入一條數(shù)據(jù)。
CREATE TABLE test_raw (c1 RAW(10));
INSERT INTO test_raw VALUES (utl_raw.cast_to_raw('1234567890'));
執(zhí)行以下語句:
SELECT utl_raw.cast_to_varchar2(c1) FROM test_raw;
查詢結(jié)果如下:
+-------------------------------+
| UTL_RAW.CAST_TO_RAW(C1) |
+-------------------------------+
| 1234567890 |
+-------------------------------+
示例 2: 向 raw_test 表中插入 2 條數(shù)據(jù)。
CREATE TABLE raw_test (id number, raw_date raw(10));
INSERT INTO raw_test VALUES (1, hextoraw('ff'));
INSERT INTO raw_test VALUES (2, utl_raw.cast_to_raw('051'));
執(zhí)行以下語句:
SELECT * FROM raw_test;
查詢結(jié)果如下:
+------+----------+
| ID | RAW_DATE |
+------+----------+
| 1 | FF |
| 2 | 303531 |
+------+----------+
SQL 函數(shù) HEXTORAW()
會把字符串中數(shù)據(jù)轉(zhuǎn)換為 16 進制數(shù)。SQL 函數(shù) UTL_RAW.CAST_TO_RAW([VARCHAR2])
會把字符串中每個字符的 ASCII 碼存放到 RAW
類型的字段中。例如,051 轉(zhuǎn)換為 303531。
RAW
數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù),每個字符代表 RAW
數(shù)據(jù)的四個連續(xù)位的十六進制數(shù)(0~9 和 A~F 或 a~f)。如:二進制位數(shù) 11001011,其 RAW
數(shù)據(jù)轉(zhuǎn)換后為字符 CB。
OceanBase 數(shù)據(jù)庫將字符數(shù)據(jù)轉(zhuǎn)換為 RAW
,它是把每個連續(xù)的輸入字符解釋為二進制數(shù)據(jù)的四個連續(xù)位,通過把這些位進行級聯(lián),來構(gòu)建結(jié)果 RAW
值。
注意
如果任一輸入字符不是十六進制數(shù)(0~9 和 A~F 或 a~f),則將報告錯誤。如果字符數(shù)為奇數(shù),則結(jié)果不確定。
在數(shù)據(jù)庫之間傳輸數(shù)據(jù),或者在數(shù)據(jù)之間傳輸數(shù)據(jù)庫字符集和客戶端字符集時,OceanBase 數(shù)據(jù)庫會自動在不同數(shù)據(jù)庫字符集之間轉(zhuǎn)換 CHAR
和 VARCHAR2
數(shù)據(jù)。而傳輸 RAW
數(shù)據(jù)時 OceanBase 數(shù)據(jù)庫不執(zhí)行字符轉(zhuǎn)換。
函數(shù) |
說明 |
---|---|
HEXTORAW() |
當(dāng)使用 |
RAWTOHEX(rawvalue) |
將 rawvalue 中的每個字節(jié)都被轉(zhuǎn)換為一個雙字節(jié)的字符串。 |
UTL_RAW_CAST_TO_RAW([VARCHAR2]) |
保持?jǐn)?shù)據(jù)的存儲內(nèi)容不變,僅改變數(shù)據(jù)類型,將 |
UTL_RAW_CAST_TO_VARCHAR2([RAW]) |
保持?jǐn)?shù)據(jù)的存儲內(nèi)容不變,僅改變數(shù)據(jù)類型,將 |
UTL_RAW.BIT_OR()、UTL_RAW.BIT_AND()、UTL_RAW.BIT_XOR() |
位操作。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: