как использовать функцию BASE64DECODE в DB2 - PullRequest
0 голосов
/ 10 июня 2019

У меня есть столбец в таблице (база данных DB2), который содержит двоичные данные в кодировке base64. Я пытаюсь прочитать данные от разработчика SQL с помощью функции BASE64DECODE.

Я пробовал ниже способы, но ни один из них, кажется, не работает

Select BASE64DECODE(COLUMN_NAME) from ENCRYPTED_DATA
Select SYSTOOLS.BASE64DECODE(COLUMN_NAME) from ENCRYPTED_DATA

1 Ответ

1 голос
/ 10 июня 2019

Если ваша платформа Db2 - Linux, Unix и Windows, то такой стандартной функции не существует. Вы можете создать и использовать следующее:

create or replace function BASE64ENCODE(b blob(1048576))
returns clob(1398102)
contains sql
deterministic 
no external action
return xmlcast(xmlquery('$d/a' passing xmldocument(xmlelement(name "a", b)) as "d") as clob(1398102))
;

create or replace function BASE64DECODE(c clob(1398102))
returns blob(1048576)
contains sql
deterministic 
no external action
return xmlcast(xmlquery('$d/a' passing xmldocument(xmlelement(name "a", c)) as "d") as blob(1048576))
;

values hex(cast(BASE64DECODE(BASE64ENCODE(blob(x'1122334455'))) as varchar(5) for bit data));

1
----------
1122334455
...