我有一个具有以下格式的JCL
Proc Library
//JS020 EXEC PGM=IKJEFT01,
// DYNAMNBR=20
//*
//EXTRACT DD DSN=PATH.EXTRACT,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(TRK,(1,10),RELEASE)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSPUNCH DD SYSOUT=*
//*
//SYSTSIN DD DSN=PATH.CONTROL_CARD_LIB(CARD1), DISP=SHR
//SYSREC00 DD DSN=TABLEA.UNLOAD.FILE,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,LRECL=80
//SYSIN DD DSN=PATH.CONTROL_CARD_LIB(CARD2), DISP=SHR
- - - - >>
PATH.CONTROL_CARD_LIB CARD1
DSN SYSTEM(XXXX)
RUN PROGRAM(DSNTIAUL) PLAN(DSNTIAUL) PARM('SQL')
卡2
Select * from TABLE
where condition1
and condition2
and condition3
当我提交作业时,我总是得到SQLSTATE = 7003和SQLCODE = -518。我尝试在网上查看并获得以下描述
EXECUTE语句中标识的语句是select语句,或者未处于准备状态。
有人能告诉我我想念的是什么吗?非常感谢。
答案 0 :(得分:0)
我认为你可能只是缺少一个分号(;
)来终止你的sql语句。
答案 1 :(得分:0)
正如James所提到的,CARD2中的SELECT语句缺少分号。指定PARM('SQL')时,它表示您的输入数据集包含一个或多个完整的SQL语句,每个语句都以分号结尾。
如果未指定SQL参数,则输入数据集必须包含一个或多个使用以下语法的单行语句(不带分号):
表或视图名称[WHERE条件] [ORDER BY列]
每个输入语句必须是有效的SQL SELECT语句,其子句为SELECT * FROM省略且没有结尾分号。
有关详细信息,请参阅此处=> http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.apsg%2Frntiaul.htm