PostgreSQL bytea для Base64, как SQL Server - PullRequest
0 голосов
/ 15 января 2019

В SQL Server я конвертирую двоичный файл в Base64, как это

SELECT HASHBYTES('MD5', 'Test') FOR XML PATH(''), TYPE

и результат "DLxmEfVUC9CAmjiNyVphWw ==".

В PostgreSQL у меня есть

SELECT encode(md5('Test')::bytea, 'base64')

и результат "MGNiYzY2MTFmNTU0MGJkMDgwOWEzODhkYzk1YTYxNWI =".

Как я могу получить результат, как SQL Server?

1 Ответ

0 голосов
/ 15 января 2019

Postgres 'md5() возвращает text, содержащее шестнадцатеричное представление хеша. Просто приведя его к bytea, вы получите bytea для этой строки, а не для значения, которое она представляет. Вы можете использовать decode(), чтобы получить значение bytea, которое строка представляет в шестнадцатеричном формате.

SELECT encode(decode(md5('Test'), 'hex'), 'base64');
...