使用 JDBC 将数据从 MATLAB 插入到 PostgreSQL 表中会引发 BatchUpdateException
我正在尝试从 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
。
I am trying to write to a PostgreSQL database table from MATLAB. I have got the connection working using JDBC and created the table, but I am getting a BatchUpdateException when I try to insert a record.
The MATLAB query to insert the data is:
user_table = 'rm_user';
colNames = {user_id};
data = {longRecords(iterator)};
fastinsert(conn, user_table, colNames, data);
The exception says:
java.sql.BatchUpdateException: Batch entry 0 INSERT INTO rm_user (user_id) VALUES ( '4') was aborted. Call getNextException to see the cause.
But I don't know how to call getNextException
from MATLAB.
Any ideas what's causing the problem or how I can find out more about the exception?
EDIT
Turns out I was looking at documentation for a newer version of MATLAB than mine. I have changed from fastinsert
to insert
and it is now working. However, I'm still interested in knowing if there is a way I could use getNextException
from MATLAB.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这应该有效:
或者,只需查看捕获的错误,它应该包含相同的信息。
另外,Matlab 有一个函数 lasterr ,它会给你最后一个错误,而不会一个 catch 语句。该函数已弃用,但您可以在提供的链接中找到替换文档。
This should work:
Alternatively, just look at the caught error, it should contain the same information.
Also, Matlab has a function lasterr which will give you the last error without a catch statement. The function is deprecated, but you can find the documentation for replacements at the link provided.