在jcl中调整表卸载输出字段

时间:2013-05-25 18:12:02

标签: db2 jcl ibm-connections

我在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的输入来解决,还是可以在查询中解决问题?

1 个答案:

答案 0 :(得分:0)

你的BLKSIZE看起来很奇怪 - 你有RECFM = FB,LRECL = 1000,BLKSIZE = 0

至少我期望RECFM = FB,LRECL = 1000,BLKSIZE = 1000

你可能完全没有指定BLKSIZE(没有给出一个)但通常BLKSIZE需要是LRECL的一些非零倍数。通常,特别是如果您的商店具有系统管理存储(SMS),系统本身将为您正在创建的文件分配最佳BLKSIZE。然而,你的例子BLKSIZE = 0,甚至不允许将一条记录存储在一个区块中。