как преобразовать строку base64 в bytea в postgresql8.2

Мне нужно преобразовать строку base64 в тип байта. Но когда я выполнил операторы SQL с помощью pgAdminIII :

select decode("ygAAA", 'base64');

Я получил следующее сообщение об ошибке:

ERROR:  syntax error at or near ")"
LINE 1: select decode('ygAAA', 'base64');
                                                              ^
********** 错误 **********

ERROR: syntax error at or near ")"
SQL 状态: 42601
字符:59

Моя версия postgresql - 8.2.15. И я мог бы использовать функцию кодирования. Я погуглил, но решения не нашел. Кто-нибудь может мне помочь? ТКС!


person yelan_fn    schedule 27.04.2017    source источник
comment
ваша ошибка не соответствует вашему запросу   -  person Vao Tsun    schedule 27.04.2017


Ответы (1)


Попробуйте использовать одинарные кавычки вместо двойных. Также строки base 64 превращают группы из 4 символов в 3 байта (24 бита в 3 байтах распределяются по младшим 6 битам из 4 символов). Таким образом, ваша строка base64 недействительна.

Это работает:

select decode('ygAA', 'base64');

Надеюсь это поможет,

Адам.

person Adam Benson    schedule 27.04.2017
comment
Я пробовала но не вышло. Я спросил инженера EMC ^ 2, он сказал, что функция декодирования не работает в Greenplum. Извините , Я не описал это четко , Я пробовал это в базе данных Greenplum 4.3.8.1 build 1. Тем не менее, спасибо! - person yelan_fn; 09.06.2017