SQLSTATE 7003在JCL中卸载表时

时间:2011-06-23 19:23:09

标签: db2 mainframe jcl

我有一个具有以下格式的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语句,或者未处于准备状态。

有人能告诉我我想念的是什么吗?非常感谢。

2 个答案:

答案 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