最近用了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里面永遠只有一條記錄。
