我正在创建存储过程以替换IBM i的旧版应用程序。我正在从Java Web App调用存储过程。我正在使用jt400 JDBC驱动程序
我的JDBC URL是jdbc:as400://myhost/;libraries=*LIBL,MYLIB;prompt=false
存储过程可以调用存储过程
如果不进行进一步的存储过程调用,则初始存储过程调用将正常完成
如果存储过程调用了其他存储过程,它将失败并
com.ibm.as400.access.AS400JDBCSQLSyntaxErrorException: [SQL0204] MY_SP in MYLIB type *N not found.
如果我在存储过程的调用语句中对模式进行硬编码,则调用将正常完成。
我想让被调用的存储过程使用与调用方相同的模式
答案 0 :(得分:0)
您需要SET PATH = "MYLIB"
当我使用SQuirreL调用存储过程时,我需要使用SET PATH
语句来获取它以查找存储过程。我不知道这是因为我的库列表坏了还是什么,但是当前的架构并未用于查找不合格的存储过程。
答案 1 :(得分:0)
我实际上也遇到了同样的问题,存储过程使用了您的职位描述库列表。您需要进行编辑以使用TAATOOL CHGLBLJOBD
。我目前不在iSeries的前面,但我相信命令是EDTJOBDLIB
或EDTJOBDLIBL WRKJOBDLIBL
。这是一些变化。