使用 RUNSQL CL 命令
RUNSQL CL 命令允许从 CL 程序中运行 SQL 语句,而不需要源文件。
RUNSQL 可以使用以下语句:
- ALTER FUNCTION
- ALTER MASK
- ALTER PERMISSION
- ALTER PROCEDURE
- ALTER SEQUENCE
- ALTER TABLE
- ALTER TRIGGER
- CALL
- COMMENT
- COMMIT
- 复合(动态)
- CREATE ALIAS
- CREATE FUNCTION
- CREATE INDEX
- CREATE MASK
- CREATE PERMISSION
- CREATE PROCEDURE
- CREATE SCHEMA
- CREATE SEQUENCE
- CREATE TABLE
- CREATE TRIGGER
- CREATE TYPE
- CREATE VARIABLE
- CREATE VIEW
- DECLARE GLOBAL TEMPORARY TABLE
- 删除
- DROP
- 授予
- 插入
- 标签
- MERGE
- REFRESH TABLE
- RELEASE SAVEPOINT
- RENAME
- 撤销
- ROLLBACK
- SAVEPOINT
- SET CURRENT DECFLOAT ROUNDING MODE
- SET CURRENT DEGREE
- SET CURRENT IMPLICIT XMLPARSE OPTION
- 设置当前时间系统时间
- SET ENCRYPTION PASSWORD
- SET PATH
- SET SCHEMA
- SET TRANSACTION
- TRANSFER OWNERSHIP
- TRUNCATE
- 更新
语句字符串的长度最多可以为 5000 个字符。 它不能以分号结尾。
语句字符串中允许使用注释。 行注释以双连字符 (--) 开头,并在行的末尾 (回车符和/或换行符) 或字符串的末尾结束。 块注释以/* 开头并继续,直到到达相应的 */。 可以嵌套块注释。
如果任何文件由 RUNSQL 打开,那么在将控制权返回给调用者之前将其关闭。 如果落实控制处于活动状态,那么由用户的应用程序来执行落实或回滚。
该命令在调用者的激活组中运行。 如果 RUNSQL 包含在已编译的 CL 程序中,那么将使用该程序的激活组。
缺省情况下不会生成输出列表。 如果发生故障,那么会将 SQL 消息作为脱离消息发送到调用者。 对于返回语法错误的复杂 SQL 语句,可以使用数据库监视器来帮助查找错误原因。 启动数据库监视器,运行 RUNSQL 命令,并使用 System i Navigator 分析数据库监视器。 可以在命令上使用 OPTION , PRTFILE 和 SECLVLTXT 参数来生成列表。
从 CL 运行 INSERT 语句:
RUNSQL SQL('INSERT INTO prodLib/work_table VALUES(1, CURRENT TIMESTAMP)')在 CL 程序中,可以使用 "接收文件" (RCVF) 命令来读取为此查询生成的表的结果:RUNSQL SQL('CREATE TABLE qtemp.worktable AS
(SELECT * FROM qsys2.systables WHERE table_schema = ''MYSCHEMA'') WITH DATA')
COMMIT(*NONE) NAMING(*SQL)创建 CL 程序,该程序使用输入参数作为语句的一部分来构造和运行 SQL 语句:RUNSQL1: PGM PARM(&LIB)
DCL &LIB TYPE(*CHAR) LEN(10)
DCL &SQLSTMT TYPE(*CHAR) LEN(1000)
CHGVAR VAR(&SQLSTMT) +
VALUE('DELETE FROM qtemp.worktable1 +
WHERE table_schema = '' || &LIB || '' ')
RUNSQL SQL(&SQLSTMT) COMMIT(*NONE) NAMING(*SQL)
ENDPGM