0

出力をデータセットに送信するために、jcl で bmcunld を実行しました。問題は、そのフィールドのサイズが最大であり、次のエラー メッセージが表示されるため、後で作成されたデータセットを読み取ることができないことです。

 "Invalid Record Length"

これは私のアンロードのサンプルです:

//A00BMC   EXEC PROC=BMCUNLD,UTILID=%%JOBNAME,PARAM='NEW',COND=(0,NE),  
//         SUBSYS=subsys                                                  
//SYSREC   DD DSN=datasetname,                               
//            DISP=(NEW,CATLG),                                         
//            SPACE=(CYL,(10,10),RLSE),                          
//            DCB=(RECFM=FB,LRECL=1000,BLKSIZE=0)               
//SYSIN    DD *                                                  
  UNLOAD                                                         
  DIRECT NO                                                  
  SELECT  a.data, a.codent, b.text                        
  FROM owner.table_view A,owner.table2_view B  
  WHERE a.cmarca='S' AND a.cestado='P'  AND A.codrc='OK'         
  AND DATE(A.data) > CURRENT DATE - 2 DAYS                
  AND B.cmarca   = A.cmarca                                  
  AND B.chave   = A.data                                 
  WITH UR;                                 

この問題は、このデータセットを OUTREC PARSE を使用した SORT への入力として使用することによってのみ解決できますか、またはクエリで直接問題を解決できますか?

4

1 に答える 1

0

BLKSIZE が奇妙に見えます - RECFM=FB,LRECL=1000,BLKSIZE=0 です

最低でも RECFM=FB,LRECL=1000,BLKSIZE=1000 になると思います

BLKSIZE をまったく指定しなくても (指定しないことで) 回避できる場合がありますが、通常、BLKSIZE は LRECL のゼロ以外の倍数である必要があります。通常、特にショップがシステム管理ストレージ (SMS) を使用している場合、システム自体が、作成しているファイルに適した最適な BLKSIZE を割り当てます。ただし、 BLKSIZE=0 の例では、1 つのレコードをブロックに格納することさえ許可されていません。

于 2013-07-16T21:11:21.637 に答える