關於hextoraw()與utl_raw.cast_to_raw及rawtohex()
SQL> create table test_raw (raw_col raw(10));
表已建立。
SQL> insert into test_raw values (hextoraw('ff'));
已建立 1 行。
SQL> insert into test_raw values (hextoraw('0'));
已建立 1 行。
SQL> insert into test_raw values (hextoraw('23fc'));
已建立 1 行。
SQL> insert into test_raw values (hextoraw('fffffffffff'));
已建立 1 行。
SQL> insert into test_raw values (hextoraw('ffffffffffffffffffff'));
已建立 1 行。
SQL> insert into test_raw values (utl_raw.cast_to_raw('051'));
已建立 1 行。
SQL> select raw_col, dump(raw_col, 16) dump_raw from test_raw;
RAW_COL DUMP_RAW
-------------------- -----------------------------------------------
FF Typ=23 Len=1: ff
00 Typ=23 Len=1: 0
23FC Typ=23 Len=2: 23,fc
0FFFFFFFFFFF Typ=23 Len=6: f,ff,ff,ff,ff,ff
FFFFFFFFFFFFFFFFFFFF Typ=23 Len=10: ff,ff,ff,ff,ff,ff,ff,ff,ff,ff
303531 Typ=23 Len=3: 30,35,31
已選擇6行。
RAW型別的儲存很簡單,對比欄位的查詢結果和DUMP的結果就一目瞭然了。
需要注意的是,兩種轉化為RAW的函式之間的差別。當使用HEXTORAW時,會把字串中資料當作16進位制數。而使用UTL_RAW.CAST_TO_RAW時,直接把字串中每個字元的ASCII碼存放到RAW型別的欄位中。
---------------------------------------------------
SQL> select rawtohex(sysdate) from dual;
07D70B100A003100
SQL> select dump(sysdate,16) from dual;
Typ=13 Len=8: 7,d7,b,10,a,1,2,0
SQL> select rawtohex(12) from dual;
C10D
SQL> select dump(12,16) from dual;
Typ=2 Len=2: c1,d
SQL> select rawtohex('12') from dual;
3132
SQL> select dump('12',16) from dual;
Typ=96 Len=2: 31,32
可以看出rawtohex()函式引數可為date,number,char等型別,並自動轉化為相應16進位制資料.
而hextoraw()的引數只能為16進位制.雖然最終結果還是用16進位制資料表現出來,但在ORACLE內部是儲存raw型別,具體內部怎麼實現,小弟才舒學淺,就很難判斷了!
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11423276/viewspace-982566/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 7.101 HEXTORAW
- 關於 CLAHE 的理解及實現
- 關於平等與歧視
- 關於Ant與Maven(一)Maven
- 關於“心流”與“環境”
- 關於 Roguelike 的探討,及基於 Roguelike 的新框架框架
- 關於performSelector:afterDelay:的一個坑及思考performSelector
- 關於Javascript中的valueOf與toStringJavaScript
- 關於JVM的組成與classloaderJVM
- 一個關於wait/notify與鎖關係的探究AI
- 關於儲存及CSS的一些技巧CSS
- loadrunner 關於計算及瓶頸識別(五)
- 關於日期及時間欄位的查詢
- 關於javascript中變數及函式的提升JavaScript變數函式
- 關於單例及靜態變數測試單例變數
- kubernetes儲存類與PV與PVC關係及實踐
- SRE的含義及與 DevOps 如何關聯dev
- 關於PHP協程與阻塞的思考PHP
- nginx關於root與alias的區別Nginx
- 關於C與C++的區別C++
- Android關於buildToolVersion與CompileSdkVersion的區別AndroidUICompile
- 關於Unity 如何與Blazor Server結合UnityBlazorServer
- 關於ObservableCollection的更新與不更新分析
- 關於 TesterHome 社群與測吧的公告
- python 關於 函式物件與閉包Python函式物件
- 關於量子霍爾效應與你
- 關於UEC++中FText、FString與FNameC++
- 關於 mybatis-plus 與JPA 混合使用MyBatis
- 關於CleanMyMac常見問題與解答Mac
- 關於IT,關於技術
- 關於base64編碼的原理及實現
- 關於mysql字符集及排序規則設定MySql排序
- CSS中關於定位及BFC中的易錯點CSS
- 關於個人部落格的選擇及實現
- 關於前後端分離及初始化配置後端
- 關於js回撥方法及遞迴時的使用JS遞迴
- Cesium筆記----關於viewer的配置及常用東西筆記View
- 關於Array.reduce的理解與擴充
- 關於類的物件建立與初始化物件