use*_*077 1 postgresql postgresql-9.4 postgresql-9.5
我在具有不同postgres版本的两台服务器上执行相同的sql脚本.第一个有postgres 9.4.4(这个工作正常),另一个9.5(这会抛出异常)安装.
UPDATE archived_invoice SET encrypted_xml
= encrypt(xml::bytea, 'MySuperSecretKey'::bytea, 'aes-ecb/pad:pkcs')
Run Code Online (Sandbox Code Playgroud)
例外:
Caused by: org.postgresql.util.PSQLException: ERROR: invalid input syntax for type bytea
SQL Status:22P02
Run Code Online (Sandbox Code Playgroud)
这两个postgresql版本之间有什么区别吗?
ERROR: invalid input syntax for type bytea如果text您正在转换为bytea包含无效的转义序列,PostgreSQL将向您抛出:
# select '\i is not a valid escape sequence'::bytea;
ERROR: invalid input syntax for type bytea
LINE 1: select '\i is not a valid escape sequence'::bytea;
Run Code Online (Sandbox Code Playgroud)
我猜你的"xml"列包含或可能包含一些反斜杠.这适用于XML和text列,但在转换为时会出现问题bytea.
你需要逃避反斜杠:
UPDATE archived_invoice SET encrypted_xml
= encrypt(
replace(xml, '\', '\\')::bytea,
'MySuperSecretKey'::bytea,
'aes-ecb/pad:pkcs'
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
684 次 |
| 最近记录: |