Oracle dump函式的與utl_raw
函式式:
DUMP(expr[,return_fmt[,start_position][,length]])
基本引數時4個,最少可以填的引數是0個。當完全沒有引數時,直接返回null。另外3個引數也都有各自的預設值:
expr:這個引數是要進行分析的表示式(數字或字串等,可以是各個型別的值)
return_fmt:指返回引數的格式,有5種用法:
1)8:以8進位制返回結果的值
2)10:以10進位制返回結果的值(預設)
3)16:以16進位制返回結果的值
4)17:以單字元的形式返回結果的值
5)1000:以上4種加上1000,表示在返回值中加上當前字符集
start_position:開始進行返回的字元位置
length:需要返回的字元長度
示例
sql> select dump('abc') from dual;
DUMP('ABC')
----------------------
Typ=96 Len=3: 97,98,99
sql> select dump('abc',16) from dual;
DUMP('ABC',16)
----------------------
Typ=96 Len=3: 61,62,63
sql> select dump('abc',1016) from dual;
DUMP('ABC',1016)
--------------------------------------------
Typ=96 Len=3 CharacterSet=ZHS16GBK: 61,62,63
sql> select dump('abc',17,2,2) from dual;
DUMP('ABC',17,2,2
-----------------
Typ=96 Len=3: b,c
結果的格式一般都是類似:Typ=96 Len=3 [CharacterSet=ZHS16GBK]: 61,62,63
type
typ表示當前的expr值的型別。如:2表示NUMBER,96表示CHAR。
CODE TYP
----- ------------------------------
1 VARCHAR2
2 NUMBER
8 LONG
12 DATE
23 RAW
24 LONG RAW
69 ROWID
96 CHAR
112 CLOB
113 BLOB
114 BFILE
180 TIMESTAMP
181 TIMESTAMP WITH TIMEZONE
182 INTERVAL YEAR TO MONTH
183 INTERVAL DAY TO SECOND
208 UROWID
231 TIMESTAMP WITH LOCAL TIMEZONE
len
len表示該值所佔用的位元組數。
對於漢字,ZHS16GBK編碼一個漢字需要2個位元組,UTF8需要3個位元組。
Value
具體的儲存值。返回的數值就是Oracle在自己內部對前面的這個expr值得儲存形式。對於非漢字的普通字串,可以理解為就是它的ASCII碼。
SQL> select to_number('3230','xxxx')from dual;
TO_NUMBER('3230','XXXX')
------------------------
12848
SQL> select to_number('3430','xxxx')from dual;
TO_NUMBER('3430','XXXX')
------------------------
13360
SQL> select to_number('3036','xxxx')from dual;
TO_NUMBER('3036','XXXX')
------------------------
12342
SQL>
SQL> select chr(12848)from dual;
CHR(12848)
----------
20
SQL> select chr(13360)from dual;
CHR(13360)
----------
40
SQL> select chr(12342)from dual;
CHR(12342)
----------
06
將CHR(12848)+CHR(13360)+CHR(12342)=204006
utl_raw.cast_to_xxx()作為dump的逆函式
sql>select dump('201201',16) from dual;
dump('201201',16)
---------------------------------------------------------
Typ=96 Len=6: 32,30,31,32,30,31
sql>select utl_raw.cast_to_varchar2('323031323031') value from dual
201201
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-747958/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle分析函式與視窗函式Oracle函式
- PostgreSQL DBA(73) - dump函式SQL函式
- [20191002]函式dump的bug.txt函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- wm_concat函式與oracle版本函式Oracle
- PHP 自己實現var_dump函式PHP函式
- oracle 函式Oracle函式
- oracle or 函式Oracle函式
- 【Oracle SQL】months_between與trunc函式OracleSQL函式
- 【Oracle的NVL函式用法】Oracle函式
- Oracle常用函式Oracle函式
- 7 Oracle 函式Oracle函式
- Oracle 字串函式Oracle字串函式
- Oracle 字串函式Oracle字串函式
- 資料型別與函式索引-Oracle篇資料型別函式索引Oracle
- oracle interval日期函式的bug!Oracle函式
- Oracle的LAST_DAY函式OracleAST函式
- Oracle中Decode()函式的使用Oracle函式
- oracle之 如何 dump logfileOracle
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- Oracle 自定義函式Oracle函式
- oracle 高階函式Oracle函式
- oracle json 解析函式OracleJSON函式
- Oracle 隨機函式Oracle隨機函式
- Oracle函式彙總Oracle函式
- DB2常用函式與Oracle比較TIDB2函式Oracle
- Oracle的SYS_CONNECT_BY_PATH函式Oracle函式
- 6、Oracle中的分組函式Oracle函式
- oracle 10g函式大全–日期型函式Oracle 10g函式
- 函式外與函式內的變數函式變數
- oracle常用函式介紹Oracle函式
- Oracle OCP(04):聚合函式Oracle函式
- oracle函式手冊(轉)Oracle函式
- Oracle函式入坑指南Oracle函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- Oracle分析函式之開窗函式over()詳解Oracle函式
- JavaScript的迭代函式與迭代函式的實現JavaScript函式
- 建構函式與普通函式的區別函式
- 箭頭函式與普通函式的區別函式