有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

调用SQLException时发生java RuntimeException。getMessage()(DB2)

在用DB2调用SQLException.getMessage()时,我们看到一个RunTimeException

Caused by: com.ibm.db2.jcc.am.ro: Q1D02E02;EXECUTE;SYSIBM.SQLCAMESSAGECCSID
    at com.ibm.db2.jcc.am.ed.a(ed.java:676)
    at com.ibm.db2.jcc.am.ed.a(ed.java:60)
    at com.ibm.db2.jcc.am.ed.a(ed.java:127)
    at com.ibm.db2.jcc.am.p.e(p.java:512)
    at com.ibm.db2.jcc.am.p.a(p.java:467)
    at com.ibm.db2.jcc.am.sn.a(sn.java:334)
    at com.ibm.db2.jcc.am.qm.c(qm.java:78)
    at com.ibm.db2.jcc.am.ro.getMessage(ro.java:52)

这可能导致了我的a配置问题,但是getMessage()肯定不应该抛出


共 (1) 个答案

  1. # 1 楼答案

    如果Db2 JDBC驱动程序属性^{}设置为true(非默认值),则驱动程序将通过调用存储过程SYSIBM.SQLCAMESSAGESYSIBM.SQLCAMESSAGECCSID,尝试从服务器检索完整的错误消息

    通常,这些过程中的EXECUTE权限将被授予PUBLIC,但您的用户ID Q1D02E02似乎没有该权限。例如,如果数据库被创建为限制性数据库,或者特权被从PUBLIC显式撤销,则可能会发生这种情况

    要解决此问题,请授予必要的权限或避免从数据库服务器检索错误消息