Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将DB2/Oracle中的FileNet ID转换为友好的GUID?_Sql_Oracle_Db2_Guid_Filenet Content Engine - Fatal编程技术网

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

Sql 如何将DB2/Oracle中的FileNet ID转换为友好的GUID?,sql,oracle,db2,guid,filenet-content-engine,Sql,Oracle,Db2,Guid,Filenet Content Engine,IBM Technote“”概述了DB2和Oracle如何以字节颠倒顺序存储GUID。如何将它们转换为友好的guid?以下代码在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

IBM Technote“”概述了DB2和Oracle如何以字节颠倒顺序存储GUID。如何将它们转换为友好的guid?

以下代码在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上不起作用

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


以下代码按照IBM Technote中的方法在DB2中实现了这一点:

‘{’ 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上不起作用

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


假定位数据的对象id为
char(16)
,下面的表达式返回相同的值

'{'||translate(
  'GHEFCDAB-KLIJ-OPMN-QRST-UVWXYZ012345'
, hex(F.object_id)
, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345')||'}' as object_id

假定位数据的object_id是char(16),下面的表达式返回相同的值

'{'||translate(
  'GHEFCDAB-KLIJ-OPMN-QRST-UVWXYZ012345'
, hex(F.object_id)
, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345')||'}' as object_id

我希望将此标记为可接受的答案,但它是位数据的varchar(16),因此此解决方案不起作用。它对位数据的varchar(16)也起作用。尝试以下操作:
选择“{”| translate('GHEFCDAB-KLIJ-OPMN-QRST-uvwxyz01245',hex(F.object_id),'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345')|作为对象id,hex(F.object_id)作为表中的原始对象id(值转换为varchar(16)用于位数据),转换为(x'6646068000015c39fc48c928e241e3b'作为位数据的varchar(16))F(object_id)
。如果它不适用于您,那么您的db2平台和版本是什么?我希望将其标记为可接受的答案,但它是位数据的varchar(16),因此此解决方案不起作用。它确实适用于varchar(16)对于位数据也可以这样做:
选择“{'| | translate('GHEFCDAB-KLIJ-OPMN-QRST-uvwxyzo12345',hex(F.object_id),'abcdefghijklmnopqrstuvxyzo12345')|}作为对象id,hex(F.object_id)作为表中的原始对象id(值转换(x'66408640001ECC61CEAA453B870作为位数据的varchar),转换(x'6646068000015C39FC48C928E241E3B'作为位数据的varchar(16))F(object_id)
。如果它不适合您,那么您的db2平台和版本是什么?