我读了足够多的书,知道当字符串包含一些 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
日期类型与目标类型不匹配。例如 int4->int8
此消息意味着您的字符串数据中有一个空字符
"\0"
。
我找不到对此的权威引用(如果你有,请告诉我)。
在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
允许使用所有其他字符。
就我而言,我正在从 sql 文件加载查询。问题是由于编码造成的。 我把它改成UTF-8就可以了。希望有帮助!
这意味着类型不匹配。 就我而言,我试图将 int 插入到应该是 int64 的位置。