无法连接 varchar 和 ==
Unable to concatenate a varchar and ==
我正在使用 postgresql 9
我正在 运行查询 base64 解码一个值并打印其结果:
SELECT convert_from(decode(CONCAT('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ','=='),'base64'),'utf-8');
但是,当我 运行 对 table 进行相同的查询时,我得到了错误:
我的查询的版本 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 在我的 table t.
中的数据类型为 Varchar(255)
我不知道如何解决这个问题。是否有不同的方法来解码 base64 数据并从查询中打印出来?
只需使用 ||
即可 concat
:
SELECT convert_from(decode('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ' || '==','base64'),'utf-8');
convert_from
---------------------------
iancudatest+100@gmail.com
对于table:
SELECT t.data,
convert_from(decode(t.data::text || '==','base64'),'utf-8')
FROM table t;
我正在使用 postgresql 9 我正在 运行查询 base64 解码一个值并打印其结果:
SELECT convert_from(decode(CONCAT('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ','=='),'base64'),'utf-8');
但是,当我 运行 对 table 进行相同的查询时,我得到了错误: 我的查询的版本 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 在我的 table t.
中的数据类型为 Varchar(255)我不知道如何解决这个问题。是否有不同的方法来解码 base64 数据并从查询中打印出来?
只需使用 ||
即可 concat
:
SELECT convert_from(decode('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ' || '==','base64'),'utf-8');
convert_from
---------------------------
iancudatest+100@gmail.com
对于table:
SELECT t.data,
convert_from(decode(t.data::text || '==','base64'),'utf-8')
FROM table t;