Cobol DB2 SQL查询 - NOT IN参数

时间:2014-08-15 06:51:23

标签: sql db2 cobol

是否有可能有这样的事情:

MOVE "'xx','yy','mm''" TO WS-TYPE-PARAM;

然后在SQL Query中:

SELECT bar
  FROM tblfoo
 WHERE bar_type NOT IN (:WS-TYPE-PARAM)

我试过但不成功。也许有另一种选择。

提前致谢。

1 个答案:

答案 0 :(得分:2)

99%当然答案是否定的。 (RPG为100%)

您必须为每个值传递一个变量

SELECT bar FROM tblfoo WHERE bar_type NOT IN (:WS-TYPE-PARAM1 : WS-TYPE-PARAM2 : WS-TYPE-PARAM3)

你可以使用动态SQL(对不起它是RPG)

wSqlStmt = 'SELECT bar FROM tblfoo WHERE bar_type NOT IN (' + WS-TYPE-PARM + ')';

然而,正常情况下,这样的动态SQL是一个坏主意。出于性能和安全原因; 上述动态代码容易受到SQL注入攻击。但只要WS-TYPE-PARM中的值不是来自用户就是安全的。

最后一个选项是将值插入临时表,然后只是

SELECT bar FROM tblfoo WHERE bar_type NOT IN (SELECT type_parm FROM tmptable)