使用 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的主要内容,如果未能解决你的问题,请参考以下文章