DB2 SQL是否将IF ELSE条件视为DDL语句?

时间:2018-10-29 17:17:29

标签: sql db2

我正在尝试使用一个简单的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

https://imgur.com/a/58RYjpu

1 个答案:

答案 0 :(得分:2)

问题在于您无法在DB2中的复合语句中“无所选择”。 Db2 CLP可以为您返回单个sql语句的结果集,但不会尝试对复合语句中的select语句执行相同的操作。 例如,如果要从复合语句中的select语句中打印结果集,则可以声明一个游标,以循环方式获取它,然后使用dbms_output.put_line调用来打印变量的值。