4

在这里我可能有一个简单的问题。我正在尝试连接到 DB2 数据库并通过 java 执行 SP。我能够连接到数据库,但是在执行 SP 时出现错误。请让我知道如何解决这个问题。顺便说一下,我将所有 JDBC url、模式、用户名和密码放在一个属性文件中并运行一个批处理文件

这是我运行批处理文件时的堆栈跟踪

URL :`jdbc:db2://ip:50001/RMSDB:currentSchema=etwrms;currentPackagePath=etwrms,sysibm,sysfun,sysproc;currentFunctionPath=sysibm,sysfun;

Santosh....after WF_NON_MSG_SEND

ERROR [main] WorkflowMailer (processcycle:344) - DB2 SQL Error: SQLCODE=-440, SQ
LSTATE=42884, SQLERRMC=WF_NON_MSG_SEND;PROCEDURE, DRIVER=3.57.82
com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=WF_
NON_MSG_SEND;PROCEDURE, DRIVER=3.57.82
        at com.ibm.db2.jcc.am.bd.a(bd.java:676)
        at com.ibm.db2.jcc.am.bd.a(bd.java:60)
        at com.ibm.db2.jcc.am.bd.a(bd.java:127)
        at com.ibm.db2.jcc.am.km.c(km.java:2506)
        at com.ibm.db2.jcc.am.km.d(km.java:2483)
        at com.ibm.db2.jcc.am.km.a(km.java:1963)
        at com.ibm.db2.jcc.t4.db.g(db.java:139)
        at com.ibm.db2.jcc.t4.db.d(db.java:75)
        at com.ibm.db2.jcc.t4.t.d(t.java:63)
        at com.ibm.db2.jcc.t4.sb.k(sb.java:170)
        at com.ibm.db2.jcc.am.km.fb(km.java:1958)
        at com.ibm.db2.jcc.am.lm.kc(lm.java:2813)
        at com.ibm.db2.jcc.am.lm.b(lm.java:3515)
        at com.ibm.db2.jcc.am.mm.Yb(mm.java:113)
        at com.ibm.db2.jcc.am.mm.execute(mm.java:96)
        at com.ramco.rvw.workflow.mail.WorkflowMailer.processcycle(WorkflowMaile
r.java:338)
        at com.ramco.rvw.workflow.mail.WorkflowMailer.main(WorkflowMailer.java:6
5)
`
4

1 回答 1

7

下次遇到 DB2 错误时,可以访问这个方便的错误消息网站查找原因。

-440

NO AUTHORIZED routine-type BY THE NAME routine-name HAVING COMPATIBLE ARGUMENTS 在当前路径中找到

解释

尝试调用例程,但 DB2® 无法将例程的调用(包括参数列表)解析为特定的例程定义。

常规型

例程的类型,例如 FUNCTION 或 PROCEDURE。

例程名称或模式名称。例程名称

例程的名称。如果原始语句引用限定名称,则消息文本中的例程名称由模式名称限定。

此错误的可能原因包括:

  • 例程名称指定不正确或在数据库中不存在。
  • 使用了限定引用,并且错误地指定了模式限定符。
  • 用户的 SQL 路径不包含所需函数所属的架构,并且使用了非限定引用。
  • 包含错误数量的参数。
  • 例程引用中包含正确数量的参数,但一个或多个参数的数据类型不正确。
  • 例程的调用者无权执行例程。

你的回应

查看您的 SQL 语句并找出问题所在。

于 2012-09-27T13:39:11.253 回答