PostgreSQL bytea для Base64, как SQL Server
В SQL Server я преобразую двоичный файл в Base64, как это
SELECT HASHBYTES('MD5', 'Test') FOR XML PATH(''), TYPE
и иметь результат "DLxmEfVUC9CAmjiNyVphWw==".
В PostgreSQL у меня есть
SELECT encode(md5('Test')::bytea, 'base64')
и результат будет "MGNiYzY2MTFmNTU0MGJkMDgwOWEzODhkYzk1YTYxNWI=".
Как я могу получить результат, как SQL Server?
1 ответ
Решение
Postgres' md5()
возвращает text
содержащий шестнадцатеричное представление хеша. Просто приведя его к bytea
Вы получаете bytea
для этой строки, а не для значения, которое она представляет. Ты можешь использовать decode()
чтобы получить bytea
Значение строка представляет в шестнадцатеричной записи.
SELECT encode(decode(md5('Test'), 'hex'), 'base64');