全部產品
Search
文件中心

PolarDB:UTL_RAW

更新時間:Jul 06, 2024

UTL_RAW內建包提供了用於操作RAW類型資料的函數。

UTL_RAW子程式總覽

子程式

說明

BIT_AND Function

對RAW r1和RAW r2的值按位進行邏輯“與”運算,並返回RAW類型的計算結果。

BIT_COMPLEMENT Function

對輸入的RAW類型資料的值按位進行邏輯“補碼”運算,並返回RAW類型的計算結果。

BIT_OR Function

對RAW r1和RAW r2的值按位進行邏輯“或”運算,並返回RAW類型的計算結果。

BIT_XOR Function

對RAW r1和RAW r2的值按位進行邏輯“異或”運算,並返回RAW類型的計算結果。

CAST_TO_RAW Function

將一個VARCHAR2類型的值轉為RAW類型的值。

CAST_TO_VARCHAR2 Function

將一個RAW類型的值轉為VARCHAR2類型的值。

COMPARE Function

將RAW r1和RAW r2進行比較。

CONCAT Function

將最多12個RAW串連成一個RAW。

CONVERT Function

將RAW類型的輸入從字元集from_charset轉化到to_charset並返回結果的RAW類型表示。

COPIES Function

返回將輸入的RAW類型資料的n個拷貝拼接在一起的結果。

LENGTH Function

返回輸入的RAW類型資料的位元組長度。

OVERLAY Function

用指定的RAW類型資料覆蓋目標RAW類型資料的指定範圍。從目標RAW類型資料的pos位置開始,連續len長度的位元組。

REVERSE Function

反轉RAW類型資料的位元組序列。

SUBSTR Function

返回RAW類型輸入從pos開始的,len個位元組長度的子序列。

TRANSLATE Function

根據from_set和to_set的RAW類型序列翻譯輸入的RAW類型資料。

TRANSLITERATE Function

根據from_set和to_set的RAW類型序列轉換輸入的RAW類型資料。

XRANGE Function

返回連續的包含所有有效單位元組編碼的RAW類型資料。從start_byte指定的RAW類型值開始,到end_byte指定的RAW類型值結束。

BIT_AND Function

該函數對RAW r1和RAW r2的值按位進行邏輯“與”運算,並返回RAW類型的計算結果。

文法

UTL_RAW.BIT_AND (
   r1 IN RAW,
   r2 IN RAW) 
RETURN RAW;

參數說明

參數

說明

r1

和r2按位進行邏輯“與”運算的RAW類型資料。

r2

和r1按位進行邏輯“與”運算的RAW類型資料。

傳回值

傳回值

說明

RAW

邏輯“與”計算結果。

樣本

該樣本展示了如何計算兩個RAW類型資料的邏輯“與”結果。

SELECT utl_raw.bit_and('1234567890aabbccddeeff','1234567890') FROM dual;
                    bit_and                     
------------------------------------------------
 \x31323334353637383930616162626363646465656666
(1 row)

BIT_COMPLEMENT Function

該函數對輸入的RAW類型資料的值按位進行邏輯“補碼”運算,並返回RAW類型的計算結果。

文法

UTL_RAW.BIT_COMPLEMENT (
   r IN RAW) 
  RETURN RAW;

參數說明

參數

說明

r

對輸入的RAW類型資料按位進行邏輯“補”運算。

傳回值

傳回值

說明

RAW

邏輯“補”計算結果。

樣本

該樣本展示了如何對RAW類型資料計算按位邏輯“補”的結果。

SELECT utl_raw.bit_complement('1234567890') FROM dual;
     bit_complement     
------------------------
 \xcecdcccbcac9c8c7c6cf
(1 row)

BIT_OR Function

該函數對RAW r1和RAW r2的值按位進行邏輯“或”運算,並返回RAW類型的計算結果。

文法

UTL_RAW.BIT_OR (
   r1 IN RAW,
   r2 IN RAW) 
  RETURN RAW;

參數說明

參數

說明

r1

和r2按位進行邏輯“或”運算的RAW類型資料。

r2

和r1按位進行邏輯“或”運算的RAW類型資料。

傳回值

傳回值

說明

RAW

邏輯“或”計算結果。

樣本

該樣本展示了如何計算兩個RAW類型資料的邏輯“或”結果。

SELECT utl_raw.bit_or('\x1234567890','\x1234567890') FROM dual;
    bit_or    
--------------
 \x1234567890
(1 row)

BIT_XOR Function

該函數對RAW r1和RAW r2的值按位進行邏輯“異或”運算,並返回RAW類型的計算結果。

文法

UTL_RAW.BIT_XOR (
   r1 IN RAW,
   r2 IN RAW) 
  RETURN RAW;

參數說明

參數

說明

r1

和r2按位進行邏輯“異或”運算的RAW類型資料。

r2

和r1按位進行邏輯“異或”運算的RAW類型資料。

傳回值

傳回值

說明

RAW

邏輯“異或”計算結果。

樣本

該樣本展示了如何計算兩個RAW類型資料的邏輯“異或”結果。

SELECT utl_raw.bit_xor('\x1234567890','\x123456') FROM dual;
   bit_xor    
--------------
 \x0000007890
(1 row)

CAST_TO_RAW Function

該函數將一個VARCHAR2類型的值轉為RAW類型的值。

文法

UTL_RAW.CAST_TO_RAW (
   c  IN VARCHAR2) 
RETURN RAW;

參數說明

參數

說明

c

待轉換的VARCHAR2類型資料。

傳回值

傳回值

說明

RAW

包含和輸入的VARCHAR2類型相同的位元據。

樣本

該樣本展示了如何將VARCHAR2類型的資料轉為RAW類型資料。

SELECT utl_raw.cast_to_raw('ABCDEFGHIJKLMNOPQRSTUVWXYZ') FROM dual;
                      cast_to_raw                       
--------------------------------------------------------
 \x4142434445464748494a4b4c4d4e4f505152535455565758595a
(1 row)

CAST_TO_VARCHAR2 Function

該函數將一個RAW類型的輸入轉為對應的VARCHAR2類型輸出。

文法

UTL_RAW.CAST_TO_VARCHAR2 (
   r IN RAW) 
RETURN VARCHAR2;

參數說明

參數

說明

r

待轉換的RAW類型資料。

傳回值

傳回值

說明

VARCHAR2

包含和輸入的RAW類型資料相同的位元據。

樣本

該樣本展示了如何將RAW類型的資料轉為VARCHAR2類型的資料。

SELECT utl_raw.cast_to_varchar2(utl_raw.cast_to_raw('ABCDEFGHIJKLMNOPQRSTUVWXYZ')) FROM dual;
      cast_to_varchar2      
----------------------------
 ABCDEFGHIJKLMNOPQRSTUVWXYZ
(1 row)

COMPARE Function

該函數比較兩個RAW類型的資料。如果兩者長度不同,則根據可選的pad參數在右側擴充較短的RAW類型資料。

文法

UTL_RAW.COMPARE (
   r1  IN RAW,
   r2  IN RAW,
   pad IN RAW DEFAULT NULL) 
  RETURN NUMBER;

參數說明

參數

說明

r1

第一個待比較的RAW類型資料,可以是NULL或長度為0。

r2

第二個待比較的RAW類型資料,可以是NULL或長度為0。

pad

(選擇性參數)用於擴充r1和r2中的較短的一個,預設值是x'00'。

傳回值

傳回值

說明

NUMBER

如果r1和r2都是NULL或者相同,返回0;否則,

返回第一個r1和r2不匹配的位元組所在的位置。

樣本

該樣本展示了如何對兩個RAW類型的資料進行比較。

SELECT utl_raw.compare(NULL, '0102', '01') FROM dual;
 compare 
---------
       2
(1 row)

CONCAT Function

該函數將至多12個RAW類型的輸入拼接為一個RAW類型資料。

文法

UTL_RAW.CONCAT (  
   r1  IN RAW DEFAULT NULL,
   r2  IN RAW DEFAULT NULL,
   r3  IN RAW DEFAULT NULL,
   r4  IN RAW DEFAULT NULL,
   r5  IN RAW DEFAULT NULL,
   r6  IN RAW DEFAULT NULL,
   r7  IN RAW DEFAULT NULL,
   r8  IN RAW DEFAULT NULL,
   r9  IN RAW DEFAULT NULL,
   r10 IN RAW DEFAULT NULL,
   r11 IN RAW DEFAULT NULL,
   r12 IN RAW DEFAULT NULL) 
  RETURN RAW;

參數說明

參數

說明

r1,r2,r3,...

待拼接的RAW類型輸入。

傳回值

傳回值

說明

RAW

拼接後的結果

樣本

該樣本展示了如何對多個RAW類型輸入進行拼接。

SELECT utl_raw.concat('\xff', '\x00120349', '') FROM dual;
    concat    
--------------
 \xff00120349
(1 row)

CONVERT Function

該函數將RAW類型的輸入從字元集from_charset轉化到to_charset並返回結果的RAW類型資料。

文法

UTL_RAW.CONVERT (
   r            IN RAW,
   to_charset   IN VARCHAR2,
   from_charset IN VARCHAR2) 
  RETURN RAW;

參數說明

參數

說明

r

待拼接的RAW類型輸入。

to_charset

轉換的目標字元集。

from_charset

r當前的字元集。

傳回值

傳回值

說明

RAW

按指定字元集轉換的RAW類型資料。

樣本

該樣本展示了如何將RAW類型資料從一個字元集轉換到另一個字元集。

SELECT utl_raw.convert('31323334353637383930', 'UTF8', 'WIN1258');
                  convert                   
--------------------------------------------
 \x3331333233333334333533363337333833393330
(1 row)

COPIES Function

該函數返回將輸入的RAW類型資料的n個拷貝拼接在一起的結果。

文法

UTL_RAW.COPIES (
   r IN RAW,
   n IN NUMBER) 
  RETURN RAW;

參數說明

參數

說明

r

待拷貝的RAW類型資料。

n

拷貝r的次數。(必須是正數)

傳回值

傳回值

說明

RAW

輸入的RAW類型資料複製n次的結果。

樣本

該樣本展示了如何將RAW類型資料的n個拷貝拼接起來。

SELECT utl_raw.copies('10203040', 5) FROM dual;
                                       copies                                       
------------------------------------------------------------------------------------
 \x31303230333034303130323033303430313032303330343031303230333034303130323033303430
(1 row)

LENGTH Function

該函數返回輸入的RAW類型資料的位元組長度。

文法

UTL_RAW.LENGTH (
   r  IN RAW) 
RETURN NUMBER;

參數說明

參數

說明

r

待計算的RAW類型位元組序列。

傳回值

傳回值

說明

NUMBER

RAW類型輸入的長度。

樣本

該樣本展示了如何擷取一個RAW類型資料的長度。

SELECT utl_raw.length('\x31323334353637383930') FROM dual;
 length 
--------
     10
(1 row)

OVERLAY Function

該函數用指定的RAW類型資料覆蓋目標RAW類型資料的指定範圍。從目標RAW類型資料的pos位置開始,連續len長度的位元組。

文法

UTL_RAW.OVERLAY (
   overlay_str IN RAW,
   target      IN RAW,
   pos         IN BINARY_INTEGER DEFAULT 1,
   len         IN BINARY_INTEGER DEFAULT NULL,
   pad         IN RAW            DEFAULT NULL) 
  RETURN RAW;

參數說明

參數

說明

overlay_str

用於進行覆蓋的位元組序列。

target

待覆蓋的目標位元組序列。

pos

目標序列中開始覆蓋的位置。

len

需要覆蓋的位元組長度。

pad

當len超過overlay_str的長度或者pos超過target長度的時候使用的填充。

傳回值

傳回值

說明

RAW

目標位元組序列的覆蓋結果。

樣本

該樣本展示了如何對一個目標的位元組序列進行覆蓋。

SELECT utl_raw.overlay('\xaabbcc', '\x102030', 1, 5, '\x88') FROM dual;
   overlay    
--------------
 \xaabbcc8888
(1 row)

REVERSE Function

該函數反轉RAW類型資料的位元組序列。

文法

UTL_RAW.REVERSE (
   r IN RAW) 
  RETURN RAW;

參數說明

參數

說明

r

待反轉的RAW類型資料。

傳回值

傳回值

說明

RAW

輸入資料的反轉結果。

樣本

該樣本展示了如何反轉RAW類型資料。

SELECT utl_raw.reverse('123456789012345678901234567890') FROM dual;
                            reverse                             
----------------------------------------------------------------
 \x303938373635343332313039383736353433323130393837363534333231
(1 row)

SUBSTR Function

該函數返回RAW類型輸入從pos開始的,len個位元組長度的子序列。

文法

UTL_RAW.SUBSTR (
   r   IN RAW,
   pos IN INTEGER,
   len IN INTEGER DEFAULT NULL) 
  RETURN RAW;

參數說明

參數

說明

r

用於提取子串的RAW類型位元組序列。

pos

r中開始提取的位元組位置。

len

(選擇性參數)從pos開始提取的位元組長度。

傳回值

傳回值

說明

RAW

提取的子串序列。

樣本

該樣本展示了如何從RAW類型的位元組序列中提取子串。

SELECT utl_raw.substr('\x1234567890', 1, 2) FROM dual; 
 substr 
--------
 \x1234
(1 row)

TRANSLATE Function

該函數根據from_set和to_set的RAW類型序列翻譯輸入的RAW類型資料。

文法

UTL_RAW.TRANSLATE (
   r        IN RAW,
   from_set IN RAW,
   to_set   IN RAW) 
  RETURN RAW;

參數說明

參數

說明

r

待翻譯的RAW類型位元組序列。

from_set

需要翻譯的位元組值,如果該值在r內。

to_set

from_set中的位元組值需要被翻譯的目標位元組值。

傳回值

傳回值

說明

RAW

翻譯後的位元組序列。

樣本

該樣本展示了當前函數如何對位元組序列進行翻譯。

SELECT utl_raw.translate('01020304050607080901020809', '01020304', '1112') FROM dual;
                     translate                      
----------------------------------------------------
 \x313131323131313531363137313831393131313231383139
(1 row)

TRANSLITERATE Function

該函數根據from_set和to_set的RAW類型序列轉換輸入的RAW類型資料。

文法

UTL_RAW.TRANSLITERATE (
   r        IN RAW,
   to_set   IN RAW DEFAULT NULL,
   from_set IN RAW DEFAULT NULL,
   pad      IN RAW DEFAULT NULL)
  RETURN RAW;

參數說明

參數

說明

r

待轉換的RAW類型位元組序列。

to_set

from_set的位元組值對應的目標位元組值(任意長度)。

from_set

需要轉換的位元組值,如果該值在r內(任意長度)。

pad

當to_set比from_set短的時候使用的單位元組填儲值。

傳回值

傳回值

說明

RAW

轉換後的位元組序列。

樣本

該樣本展示了當前函數如何對位元組序列進行轉換。

SELECT utl_raw.transliterate('01020304050607080901020809', '1112', '01020304', '0a') FROM dual;
                     transliterate                      
--------------------------------------------------------
 \x3131313231303130313531363137313831393131313231383139
(1 row)

XRANGE Function

該函數返回連續的包含所有有效單位元組編碼的RAW類型資料。從start_byte指定的RAW類型值開始,到end_byte指定的RAW類型值結束。

文法

UTL_RAW.XRANGE (
   start_byte IN RAW DEFAULT NULL,
   end_byte   IN RAW DEFAULT NULL) 
  RETURN RAW;

參數說明

參數

說明

start_byte

結果序列的起始位元組碼值。預設值為x'00'。

end_byte

結果序列的結束位元組碼值。預設值為x'FF'。

傳回值

傳回值

說明

RAW

連續的單位元組序列。

樣本

該樣本展示了如何返回連續的包含指定的有效單位元組編碼的RAW類型資料。

SELECT utl_raw.xrange('', '\x20') FROM dual;
                                xrange                                
----------------------------------------------------------------------
 \x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20
(1 row)