如何在IBM i上指定SQL函数的库
我当前正在使用 SQL CONNECT 语句来访问远程系统。在进行故障排除时,我想查看当前的库列表,因此我编写了一个快速 CL 来检索它,并连接了一个 SQL 函数(使用 CREATE FUNCTION)来调用它。
当直接登录到远程系统时,并且当我拥有该函数所在的库包含在库列表(QGPL)中时,它可以工作(从 sysibm/sysdummy1 中选择 rtvlibl())。但是,当远程连接时(例如通过STRSQL),QGPL不在库列表中,并且无法找到该函数。
我似乎无法像过程 - QGPL/RTVLIBL() - 在 *SYS 命名约定中失败一样指定库。 *SQL 命名约定在 QGPL.RTVLIBL() 上也失败。
我的是V6R1。
I'm currently using an SQL CONNECT statement to access a remote system. While troubleshooting, I would like to see the current library list, so I made up a quick CL to retrieve it, and hooked up an SQL function (with CREATE FUNCTION) to call it.
When logged into the remote system directly, and when I have the library the function resides in contained in the library list (QGPL), it works (select rtvlibl() from sysibm/sysdummy1). However, when connecting remotely (like through STRSQL), QGPL is not in the library list, and it can't find it the function.
I can't seem to specify the library like a procedure - QGPL/RTVLIBL() - fails in *SYS naming convention. *SQL naming convention also fails on QGPL.RTVLIBL().
I'm on V6R1.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 *SQL 命名约定尝试此操作:
使用
SET PATH
您可以提供一个以逗号分隔的库列表,供 SQL 在搜索 UDF 时使用。顺便说一句,我刚刚在两个 V5R4 系统之间进行了 CONNECT,在目标系统上我看到了正在运行远程查询的服务器作业。该作业(在 QCMN 子系统中弹出)似乎使用 QDFTJOBD 作业描述,因此这可能是您的库列表的来源。
Try this using *SQL naming convention:
Using
SET PATH
you can provide a comma-separated list of libraries for SQL to use when searching for UDFs.By the way, I just did a CONNECT between two V5R4 systems, and on the target system I saw the server job that was running my remote queries. This job (which popped up in QCMN subsystem) appeared to use QDFTJOBD job description, so that may be where your library list is coming from.