• 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里面永远只有一条记录。

  • 相关阅读:
    14:求满足条件的3位数
    1696:逆波兰表达式
    筛法求素数 6分
    1751:分解因数
    1750:全排列
    1788:Pell数列
    666:放苹果
    06:寻宝
    04:最匹配的矩阵
    雷电
  • 原文地址:https://www.cnblogs.com/ThinkWorld/p/3305165.html
Copyright © 2020-2023  润新知