【问题标题】:Inserting data into PostgreSQL table from MATLAB with JDBC throws BatchUpdateException使用 JDBC 从 MATLAB 将数据插入 PostgreSQL 表会引发 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

【问题讨论】:

    标签: sql matlab postgresql jdbc


    【解决方案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(我在攻读硕士学位时拥有学生许可证),所以我无法测试您的建议。
    猜你喜欢
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2018-03-30
    • 2014-01-13
    • 1970-01-01
    相关资源
    最近更新 更多