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 甚至不允许将一条记录存储在块中。

于 2013-07-16T21:11:21.637 回答