stored-procedures - 在 DB2/400 存储过程中避免硬编码模式
问题描述
我正在创建存储过程来替换 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.
如果我在存储过程调用语句中对模式进行硬编码,调用将正常完成。
我想让被调用的存储过程使用与调用者相同的模式
解决方案
我实际上遇到了同样的问题,存储过程使用您的职位描述库列表。您需要编辑您可以使用TAATOOL CHGLBLJOBD
的 . 我现在不在 iSeries 面前,但我相信命令是EDTJOBDLIB
or EDTJOBDLIBL WRKJOBDLIBL
。这是其中的一些变化。
推荐阅读
- sql - 分组依据以及子句外部的列
- python - 基于策略的学习不收敛
- mysql - 合并多个表中的数据
- python - 如何使用 Python 在图中找到最近的坐标
- java - 如何以笛卡尔方式迭代字符串列表?
- .net-core - .NET Core Runtime 是否向后兼容以前的版本?
- javascript - Air Datepicker - 计算所选日期范围内的天数
- php - 无法使用 php 的 utf-8_encode 获得所需的格式或解码包含 "\x" 的字符串
- regex - 匹配字符模式之间的 N 行,移动 N 行使其与字符模式内联
- java - 无论如何我可以在 Big-O 中使用这种方法 O(1) 吗?