IBM i Access Client Solutions (ACS) 运行 SQL 脚本 - 打印变量
Posted
技术标签:
【中文标题】IBM i Access Client Solutions (ACS) 运行 SQL 脚本 - 打印变量【英文标题】:IBM i Access Client Solutions (ACS) Run SQL Scripts - print variable 【发布时间】:2021-07-13 07:45:10 【问题描述】:是否有一种简单的方法可以在 IBM i ACS Run SQL Script 屏幕的输出上显示/打印变量?
为了在编写脚本时进行快速检查,能够显示变量的内容将非常有帮助。例如。在下面的脚本中,我想知道“my_counter”的值。
BEGIN
DECLARE my_counter INT;
SET my_counter = my_counter + (SELECT count(*) FROM QSYS2.OBJECT_LOCK_INFO WHERE SYSTEM_OBJECT_SCHEMA = 'ABC' AND SYSTEM_OBJECT_NAME = 'DEF' AND OBJECT_TYPE = '*FILE');
SET my_counter = my_counter + (SELECT count(*) FROM QSYS2.OBJECT_LOCK_INFO WHERE SYSTEM_OBJECT_SCHEMA = 'ABC' AND SYSTEM_OBJECT_NAME = 'XYZ' AND OBJECT_TYPE = '*FILE');
PRINT my_counter; --> I want to print the content of variable my_counter but PRINT is not a valid keyword (all other valid keywords have a blue color, this one does not).
END;
您可能还注意到我正在做“my_counter = my_counter + ...”,我尝试使用“my_counter += ...”但没有这样的事情。有更好的方法吗?
【问题讨论】:
【参考方案1】:你好,科恩斯,
我就是这样做的:
create or replace variable @my_Counter integer default 0;
SET @my_counter = @my_counter + (SELECT count(*) FROM QSYS2.OBJECT_LOCK_INFO WHERE SYSTEM_OBJECT_SCHEMA = 'ABC' AND SYSTEM_OBJECT_NAME = 'ABC' AND OBJECT_TYPE = '*FILE');
SET @my_counter = @my_counter + (SELECT count(*) FROM QSYS2.OBJECT_LOCK_INFO WHERE SYSTEM_OBJECT_SCHEMA = 'XYZ' AND SYSTEM_OBJECT_NAME = 'XYZ' AND OBJECT_TYPE = '*FILE');
select @my_Counter from sysibm.sysdummy1;
drop variable @my_Counter;
变量是位于库中的 CL SRVPGM,如果您有问题,请在创建和使用变量之前指定库(abc.@my_Counter 或使用 SET SCHEMA 和 SET PATH 命令。
按照惯例,我在变量之前使用@。
要显示变量,请使用 sysibm.sysdummy1 文件。
【讨论】:
感谢塞尔吉奥的提示!以上是关于IBM i Access Client Solutions (ACS) 运行 SQL 脚本 - 打印变量的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从 ms-access 或 excel 导出到 IBM DB2 I-Series 数据库?
IBM AS4 客户端 (com.ibm.b2b.as4.client) - 如何设置代理主机?
IBM MobileFirst 8 - 推送通知错误代码:invalid_client
java.lang.NoClassDefFoundError:com / ibm / as400 / access / AS400 [关闭]
Ms Access 链接表到 IBM iSeries 缺少列
IBM Worklight:WL.Client.getUserName 无法在身份验证后立即检索 userIdentity