我使用Python和psycopg以编程方式将数据添加到PostgreSQL表中 - 这很好。
有时候,包含列的文本值太长,所以我收到消息:
错误:类型字符变化的值太长(1000)
其中数字是违规列的宽度。
有没有办法确定哪个列导致错误? (除了比较每列的长度以查看它是否为1000)
答案 0 :(得分:1)
我认为没有一种简单的方法。
我试图在psql中设置VERBOSITY,因为我认为这会有所帮助,但遗憾的是没有(在9.4上):
psql
\set VERBOSITY verbose
dbname=> create temporary table test (t varchar(5));
CREATE TABLE
dbname=> insert into test values ('123456');
ERROR: 22001: value too long for type character varying(5)
LOCATION: varchar, varchar.c:623
这可能是值得在邮件列表上进行讨论的内容,如you are not the only one with this problem。