我正在使用postgresql 9 我正在运行查询以base64解码一个值并打印其结果:
SELECT convert_from(decode(CONCAT('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ','=='),'base64'),'utf-8');
但是,当我在表上运行相同的查询时,我会收到错误: 我的查询的第1版:
SELECT t.data,convert_from(decode(CONCAT(t.data,'=='),'base64'),'utf-8')
FROM table t;
上面给了我ERROR: unexpected "="
我的查询的第2版:
SELECT t.data,convert_from(decode(t.data,'base64'),'utf-8')
FROM table t;
上面给了我ERROR: invalid byte sequence for encoding "UTF8": 0x8c
t.data在我的表格中是数据类型Varchar(255)。
我无法弄清楚如何解决这个问题。是否有不同的方法来解码base64数据并从查询中打印出来?
答案 0 :(得分:0)
只需使用||
代替concat
:
SELECT convert_from(decode('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ' || '==','base64'),'utf-8');
convert_from
---------------------------
iancudatest+100@gmail.com
表格:
SELECT t.data,
convert_from(decode(t.data::text || '==','base64'),'utf-8')
FROM table t;