是否有可能有这样的事情:
MOVE "'xx','yy','mm''" TO WS-TYPE-PARAM;
然后在SQL Query中:
SELECT bar
FROM tblfoo
WHERE bar_type NOT IN (:WS-TYPE-PARAM)
我试过但不成功。也许有另一种选择。
提前致谢。
答案 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)