2014-08-28 57 views

回答

2

爲了有一個完整的算法在這裏:

給定的字符串作爲輸入參數

1.Validate該字符串只包含數字1-9或字母A-F。

2.Calculate通過遍歷每個字符, 和連接相應的二進制值的二進制值:

binary hexadecimal 
0000  0 
0001  1 
0010  2 
0011  3 
0100  4 
0101  5 
0110  6 
0111  7 
1000  8 
1001  9 
1010  a 
1011  b 
1100  c 
1101  d 
1110  e 
1111  f 

例如,將是:

0001 0010 0011 0100 

3,採用該值,設置內存位的位。

4.Address它作爲原始數據類型

5.Return其作爲函數的返回值

將所得原始數據類型將具有十六進制表示等同於原始的字符串。

給定輸入'1234',該函數將返回將顯示爲十六進制值x'1234'的原始數據類型。二進制數據通常用十六進制表示,以便於閱讀和引用。

(此基礎上馬克J. Bobak的答案,所以我想給信貸給他,但我也想後一個完整的過程。)

2

從這個頁面: http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements001.htm#i46018

當甲骨文自動轉換RAW或LONG RAW數據向和從 CHAR數據中,二進制數據以十六進制形式表示,其中 一個十六進制字符表示RAW數據的每四位。 例如,顯示11001011位的一個RAW數據字節,並輸入 作爲CB。

+0

這是一個有益的開端。因此,一旦引擎確定了正確的二進制值,它必須將這些位直接放入內存位置,並將其作爲原始數據類型進行尋址。這看起來準確嗎?與在系統字符集中對該值進行編碼相反,並將其作爲1和0的varchar值返回。這就是BINARY函數在z/OS上的DB2中的作用。 – 2014-08-29 15:21:45

+0

我解釋它的方式,HEXTORAW()函數將採取任意字符串的十六進制字符,將其轉換爲二進制文件並將其作爲二進制文件存儲在RAW數據類型中。 – 2014-08-29 15:33:13

相關問題