Oracle的GUID:Raw(16)


  最近用了Oracle作為開發的數據庫。以前用Sqlserver的時候用GUID作為主鍵的(數據類型:uniqueidentifier),Oracle的GUID類型變成RAW(16)了。從數據庫讀出來RAW(16)放到DateTable里,這個RAW(16)是個Byte[16]數組,這就沒法"="之類的進行比較了。所以得轉成GUID。

.NET中:

//RAW(16)轉到GUID:

 dt.Columns.Add("Test_idGuid");//添加Guid列

foreach (DataRow row in dt.Rows)
{
  row["Test_idGuid"] = new Guid((byte[])row["Test_id"]).ToString();
}

DataRow[] dts = dt.Select("Test_idGuid = '" +row["Test_idGuid"].ToString()+"'");

 

//GUID轉到RAW(16):

BitConverter.ToString(Guid.Parse(dt.Rows[0]["Test_idGuid"].ToString()).ToByteArray()).Replace("-","");

 

//////////////////////////////////////////////////////////////////

ORACLE中產生RAW(16):

select SYS_GUID() from dual; //dual是一個虛擬表,用來構成select的語法規則,oracle保證dual里面永遠只有一條記錄。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM