如何在CL/400中使用runqry命令执行where条件的db2查询

如何在CL/400中使用runqry命令执行where条件的db2查询

问题描述:

我试图使用CLLE的runqry命令执行IBM DB2查询,但无法执行,因为它包含where条件,而我是无法在runqry命令中定义主机变量。这可以通过使用runqry命令而不使用qryslt来完成。如何在CL/400中使用runqry命令执行where条件的db2查询

请帮我一把。

+0

其实看起来这是可能的。 – danny117

RUNQRY不支持变量。

您可以在Query/400查询中定义变量,但必须使用Start Query Management Query (STRQMQRY)命令来运行查询。

请务必注明:

Allow information from QRYDFN . ALWQRYDFN *YES` 

这里是一个IBM document,显示如何做到这一点。

     Select Records          
    Type comparisons, press Enter. Specify OR to start each new group.  
    Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT...   

    AND/OR Field  Test Value (Field, Number, 'Characters', or ...) 
      GLCOMP  EQ  :COMPANY          
    AND GLBRAN  EQ  :BRANCH          
    AND GLACC  EQ  :ACCOUNT          
    ----------------------------------------------------------------------- 
STRQMQRY QMQRY(library/qry-name) ALWQRYDFN(*YES) + 
QMFORM(*QMQRY) SETVAR((COMPANY 1) (BRANCH 1) (ACCOUNT 12000)) 
+0

您也可以使用&来表示qmqry中的一个变量,但这将是针对使用CRTQMQRY创建的实际qmqry。 – danny117