代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Knight

如何将DB2/Oracle中的FileNet ID转换为友好的GUID?

  •  0
  • Jeffrey Knight  · 技术社区  · 6 年前
    2 回复  |  直到 6 年前
        1
  •  3
  •   Mark Barinstein    6 年前

    假定该对象的id为 char(16) for bit data ,以下表达式返回相同的值。

    '{'||translate(
      'GHEFCDAB-KLIJ-OPMN-QRST-UVWXYZ012345'
    , hex(F.object_id)
    , 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345')||'}' as object_id
    
        2
  •  1
  •   Jeffrey Knight    6 年前

    以下代码在DB2中实现了这一点,遵循IBM Technote中的配方:

    ‘{’ concat  upper(VARCHAR_FORMAT_BIT(
     cast(substring(F.Object_id, 4, 1) concat
     substring(F.Object_id, 3, 1) concat
     substring(F.Object_id, 2, 1)  concat
     substring(F.Object_id, 1, 1)  concat
     substring(F.Object_id, 6, 1)  concat
     substring(F.Object_id, 5, 1)  concat
     substring(F.Object_id, 8, 1)  concat
     substring(F.Object_id, 7, 1)  concat
     substring(F.Object_id, 9) as char(16)), ‘xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx’)) concat ‘}’ as object_id
    

    “cast-as-char(16)”是一个gotcha-casting-to-varchar(16)至少在DB2上不起作用。

    以下是之前和之后的内容:

    guids