Как я могу перевести ID FileNet ID в DB2 / Oracle в дружественный GUID? - PullRequest
0 голосов
/ 15 ноября 2018

IBM Technote " Как перевести уникальный идентификатор, отображаемый в FileNet Enterprise Manager, чтобы он соответствовал тому, что хранится в базах данных Oracle и DB2 ", описывает, как DB2 & Oracle хранит направляющие в байте в обратном порядке.порядок.Как я могу превратить их в дружественного гида?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Предполагая, что object_id равен char(16) for bit data, следующее выражение возвращает то же самое.

'{'||translate(
  'GHEFCDAB-KLIJ-OPMN-QRST-UVWXYZ012345'
, hex(F.object_id)
, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345')||'}' as object_id
0 голосов
/ 15 ноября 2018

Следующий код работает в 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)" - это путаница, приведение к varchar (16) неработать на DB2 хотя бы.

Вот до и после:

guids

...