我正在尝试使用一个简单的IF ELSE查询来测试DB2 SQL的功能。但是,当我尝试执行它时,遇到一个错误,指出不允许执行DDL语句。
让我失望的是,据我所知,只有数据库结构更改语句才被视为DDL语句。
有什么作用?
代码:
IF 'True' = 'True' THEN
SELECT * FROM RM_TRANSACTION
FETCH FIRST 2 ROWS ONLY
FOR READ ONLY WITH UR
ELSE
SELECT * FROM RM_TRANSACTION
FETCH FIRST 4 ROWS ONLY
FOR READ ONLY WITH UR
END IF
答案 0 :(得分:2)
问题在于您无法在DB2中的复合语句中“无所选择”。 Db2 CLP可以为您返回单个sql语句的结果集,但不会尝试对复合语句中的select语句执行相同的操作。 例如,如果要从复合语句中的select语句中打印结果集,则可以声明一个游标,以循环方式获取它,然后使用dbms_output.put_line调用来打印变量的值。>