Postgresql Postgres语法错误位于或接近;“值插入”;

Postgresql Postgres语法错误位于或接近;“值插入”;,postgresql,informatica,Postgresql,Informatica,我们正在尝试使用informatica将数据从一个postgres表加载到同一数据库中的另一个postgres表。我们有以下问题- 错误消息如下所示: 消息代码:WRT\u 8229 消息:发生数据库错误: FnName:Execute--[Informatica][ODBC-PostgreSQL有线协议驱动程序][PostgreSQL]错误:VERROR;参数6中的“VALUESNSERT”(位置135;File scan.l;第1134行;例程scanner_yyerror;)处或附近出现语

我们正在尝试使用informatica将数据从一个postgres表加载到同一数据库中的另一个postgres表。我们有以下问题-

错误消息如下所示:

消息代码:WRT\u 8229
消息:发生数据库错误:
FnName:Execute--[Informatica][ODBC-PostgreSQL有线协议驱动程序][PostgreSQL]错误:VERROR;参数6中的“VALUESNSERT”(位置135;File scan.l;第1134行;例程scanner_yyerror;)处或附近出现语法错误。
FnName:执行--[Informatica][ODBC PostgreSQL Wire Protocol driver][PostgreSQL]失败的事务。当前事务回滚。参数6中的错误。
FnName:执行--[DataDirect][ODBC lib]函数序列错误
如果我们不加载一个3000字节的字符串列,它就可以正常工作。谁能解释一下这个问题吗-


注意:我们的表结构中没有保留的/关键字

如果您已经识别了导致错误的列,那么您可以按照以下步骤查找根本原因-
1.您可以在informatica中检查列的数据类型-如果它在长度和数据类型方面与目标数据库相匹配。
2.确保从数据库导入目标。从其他进程创建目标或将列添加到现有目标可能会导致此类错误。
3.在详细模式或调试模式下运行,以查看导致问题的确切位置。检查其读取、转换和加载数据是否正确等。
4.删除postgres目标并附加一个平面文件-若这样做有效,那个么数据库表中就有问题了。检查可能导致此问题的索引、约束等。

5.检查ODBC版本,它可能有很多限制,如数据类型、长度处理。ODBC也不擅长生成错误,因此您可能需要进行一些猜测等才能找到答案。

谢谢大家。在实现Informatica PDO后,我的问题得到了解决。

valuesnert
是一个非常明显的错误。但是如果没有生成SQL的代码,这是不可能回答的。如果您已经访问了数据库服务器文件本身,请检查日志文件。它通常会打印包含失败的SQL语句,并且可能提供比您看到的更多的细节。