使用 JDBC 从 MATLAB 将数据插入 PostgreSQL 表会引发 BatchUpdateException

Posted

技术标签:

【中文标题】使用 JDBC 从 MATLAB 将数据插入 PostgreSQL 表会引发 BatchUpdateException【英文标题】:Inserting data into PostgreSQL table from MATLAB with JDBC throws BatchUpdateException 【发布时间】:2011-09-03 17:24:27 【问题描述】:

我正在尝试从 MATLAB 写入 PostgreSQL 数据库表。我已经使用 JDBC 建立了连接并创建了表,但是当我尝试插入记录时出现 BatchUpdateException。

插入数据的 MATLAB 查询是:

user_table = 'rm_user';
colNames = user_id;
data = longRecords(iterator);
fastinsert(conn, user_table, colNames, data);

异常说:

java.sql.BatchUpdateException: Batch entry 0 INSERT INTO rm_user (user_id) VALUES ( '4') was aborted.  Call getNextException to see the cause.

但我不知道如何从 MATLAB 调用 getNextException

任何想法是什么导致了问题或我可以如何找到有关异常的更多信息?

编辑

原来我正在查看比我的 MATLAB 更新版本的文档。我已从 fastinsert 更改为 insert,现在可以正常工作了。但是,我仍然想知道是否有办法使用 MATLAB 中的 getNextException

【问题讨论】:

【参考方案1】:

这应该可行:

try
   user_table = 'rm_user';
   colNames = user_id;
   data = longRecords(iterator);
   fastinsert(conn, user_table, colNames, data);
catch err
   err.getNextException ()
end

或者,只看捕获的错误,它应该包含相同的信息。

此外,Matlab 有一个函数lasterr,它会在没有 catch 语句的情况下为您提供最后一个错误。该功能已弃用,但您可以在提供的链接中找到替换文档。

【讨论】:

感谢您的回答。不幸的是,我不再拥有 MATLAB(我在攻读硕士学位时拥有学生许可证),所以我无法测试您的建议。

以上是关于使用 JDBC 从 MATLAB 将数据插入 PostgreSQL 表会引发 BatchUpdateException的主要内容,如果未能解决你的问题,请参考以下文章

使用 JDBC 将数据插入雪花

使用 jdbc 将数据插入数据库

使用 R JDBC 将数据插入到 Impala

matlab调整legend方框大小

如何从 Oracle 中的 JDBC 批量插入中获取生成的密钥?

使用 JDBC 将记录插入数据库时​​无法修复错误