0

次の形式の JCL があります

プロシージャ ライブラリ

//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 になります。Webで調べてみたところ、次の説明がありました

EXECUTE ステートメントで識別されたステートメントは、選択ステートメントであるか、準備済み状態ではありません。

誰かが私が見逃していることを教えてもらえますか? どうもありがとう。

4

2 に答える 2

0

Jamesが言及しているように、CARD2のSELECTステートメントにはセミコロンがありません。PARM('SQL')を指定すると、入力データ・セットに1つ以上の完全なSQLステートメントが含まれ、それぞれがセミコロンで終わることを示します。

SQLパラメーターを指定しない場合、入力データ・セットには、以下の構文を使用する1つ以上の単一行ステートメント(セミコロンなし)が含まれている必要があります。

テーブルまたはビューの名前[WHERE条件][ORDERBY列]

各入力ステートメントは、SELECT * FROM句が省略され、終了セミコロンがない有効なSQLSELECTステートメントである必要があります。

詳細については、これを参照してください=> http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.apsg%2Frntiaul.htm

于 2012-03-31T03:52:06.700 に答える
0

;SQLステートメントを終了するためのセミコロン()が欠落しているだけかもしれません。

于 2011-06-24T08:41:25.547 に答える