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=]"

我找不到这方面的权威引用(如果你有的话请告诉我)。

允许所有其他字符。

日期类型与目标不匹配type.for 示例 int4->int8