Postgres: org.postgresql.util.PSQLException: ERROR: insufficient data left in message
Postgres: org.postgresql.util.PSQLException: ERROR: insufficient data left in message
我读了很多书,知道当字符串包含一些 Postgres 不喜欢的字符时会发生这种情况。但是,我无法弄清楚是否有一种方法可以在编写字符串之前对其进行验证。特别是,我正在做批量插入。
insert into foo(col1,col2,col3) values ('a',2,3),('b',4,0),....
我的数据库是这样设置的:
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+--------+----------+---------+-------+-------------------
stats | me | UTF8 | C | C |
周期性地,一些错误的字符串会进入并且整个插入将失败(例如change���=
)。我在一个插入中批量处理了很多值,所以我想理想地验证字符串而不是轰炸整个插入。是否有 Postgres 插入中不允许使用哪些字符的列表?
使用postgresql-jdbc 9.1-901.jdbc4
此消息表示您的字符串数据中包含空字符 "[=10=]"
。
我找不到这方面的权威引用(如果你有的话请告诉我)。
在 https://www.postgresql.org/message-id/alpine.BSO.2.00.0906031639270.2432%40leary.csoft.net
讨论
在https://www.postgresql.org/docs/9.3/static/functions-string.html
的官方文档中有提到
允许所有其他字符。
日期类型与目标不匹配type.for 示例 int4->int8
我读了很多书,知道当字符串包含一些 Postgres 不喜欢的字符时会发生这种情况。但是,我无法弄清楚是否有一种方法可以在编写字符串之前对其进行验证。特别是,我正在做批量插入。
insert into foo(col1,col2,col3) values ('a',2,3),('b',4,0),....
我的数据库是这样设置的:
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+--------+----------+---------+-------+-------------------
stats | me | UTF8 | C | C |
周期性地,一些错误的字符串会进入并且整个插入将失败(例如change���=
)。我在一个插入中批量处理了很多值,所以我想理想地验证字符串而不是轰炸整个插入。是否有 Postgres 插入中不允许使用哪些字符的列表?
使用postgresql-jdbc 9.1-901.jdbc4
此消息表示您的字符串数据中包含空字符 "[=10=]"
。
我找不到这方面的权威引用(如果你有的话请告诉我)。
在 https://www.postgresql.org/message-id/alpine.BSO.2.00.0906031639270.2432%40leary.csoft.net
讨论
在https://www.postgresql.org/docs/9.3/static/functions-string.html
的官方文档中有提到
允许所有其他字符。
日期类型与目标不匹配type.for 示例 int4->int8