SQLUTB UNLOAD は、DBMS 内のテーブルからデータをアンロードして、出力データ セット ファイルに格納します。SQLUTB UNLOAD を使用して、テーブルからすべての行をアンロードしたり、特定の条件を満たす行 (提供されたフィールド仕様リストから選択した行など) のみをアンロードしたりすることができます。出力データ セットは、エンコーディングとフォーマットの両方において z/OS DB2 と互換性があり、SQLUTB LOAD への入力として使用できます。
SQLUTB UNLOAD は、DSNUTILB LOAD と似ています。SQLUTB UNLOAD カードを JCL にインクルードし、Enterprise Developer JCL project から、または Enterprise Server の JES CONTROL 機能を使用して JCL を直接サブミットすることで、それを実行します。JCL 構文は、z/OS DB2 互換である必要があります。
次に、UNLOAD カードを使用した JCL の例を示します。
//ULEMP001 JOB CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID,REGION=0M //DELETE EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE MCS.UNLOAD.ULEMP001 SET MAXCC=0 //DSNUTILB EXEC PGM=HCOUTILB,PARM='HCOD,ULEMP001' //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(10,10)) //SORTOUT DD UNIT=SYSDA,SPACE=(CYL,(10,10)) //SYSPRINT DD SYSOUT=* //UTPRINT DD SYSOUT=* //SYSPUNCH DD SYSOUT=* //SYSREC DD DSN=MCS.UNLOAD.ULEMP001,DISP=(MOD,CATLG), // UNIT=SYSDA,SPACE=(CYL,(1,1)), // DCB=(RECFM=VB,LRECL=107,BLKSIZE=6500) //SYSIN DD * UNLOAD DATA FROM TABLE [DSN8910].[EMP] EBCDIC /* // // PARM='&SYSTEM,&UID,&UTPROC' //*STEPLIB DD DSN=&LIB,DISP=SHR //* //SYSPRINT DD SYSOUT=* //UTPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=*
ここで、HCOD はデータベース接続の ODBC XAR ID であり、SQLUTB はプログラム TSTUTILB のエイリアスとして確立されており、MCS.UNLOAD.ULEMP001 はカタログされた出力データ ファイルです。
DB2 for z/OS DSNUTILB UNLOAD とは対照的に、SQLUTB UNLOAD の出力のデフォルトのコード セットは EBCDIC ではなく、ASCII です。また、デフォルトのレコード形式 RECFM は FB です。デフォルトの RECFM を SYSREC 定義の DCB でオーバーライドできます。