Oracle中guid屬於Raw(16)類型, 查詢的時候如果不使用下面的函數, 程序中得到的是數組(byte[]). 在extjs環境下, 會帶來數組的反序列化問題(newtonsoft.json). 因此有必要將raw(16)類型轉換為字符串輸出. 檢索時直接采用字符串即可(oracle內部可以轉換)
//根據GUID檢索(GUID是raw(16)類型):
...
strSql.Append(strSelect);
strSql.Append(" where GUID=:GUID ");
OracleParameter[] parameters = {
new OracleParameter(":GUID", OracleDbType.Varchar2,32)};
parameters[0].Value = GUID;
...
//查詢部分語句(將GUID轉換為字符串):
SELECT rawtohex(GUID)as GUID,.....
HEXTORAW
語法: HEXTORAW(string)
功能: 將由string表示的二進制數值轉換為一個RAW數值. String應該包含一個十六進制的數值. String中的每兩個字符表示了結果RAW中的一個字節..HEXTORAW和RAWTOHEX為相反的兩個函數.
使用位置: 過程性語言和SQL語句。
RAWTOHEX
語法: RAWTOHEX(rawvalue)
功能: 將RAW類數值rawvalue轉換為一個相應的十六進制表示的字符串. rawvalue中的每個字節都被轉換為一個雙字節的字符串. RAWTOHEX和HEXTORAW是兩個相反的函數.
使用位置: 過程性語言和SQL語句。