SQLUTB LOAD

SQLUTB LOAD は、メインフレーム上の DSNUTILB UNLOAD によって生成される LOAD カードだけでなく、SQLUTB UNLOAD 自体によって生成される LOAD カードでも機能するように設計されています。たとえば、次の UNLOAD 制御文により、有効な LOAD 文が生成されます。
UNLOAD DATA FROM TABLE HCOSQL.CUSTOMER
UNLOAD TABLESPACE HCOSQL.HCOTS FROM TABLE HCOSQL.EMPLOYEE
重要:
  • SQLUTB LOAD では、メインフレーム上で作成された LOAD 制御文を変更して REPLACE または RESUME YES オプションを含めるようにする必要があります。どちらも含まれていない場合には、JCL ジョブが異常終了します。
  • SQLUTB LOAD の日付形式を構成して、入力データセットの日付値の形式を指定できます。詳細については、「mbdtconfig コマンド」を参照してください。

SQLUTB LOAD の実行

SQLUTB LOAD を使用するには、JCL アプリケーション プロジェクトを作成するか、Enterprise Server の JES CONTROL 機能を使用して JCL を直接サブミットします。JCL 構文は、z/OS DB2 互換である必要があります。

次に、メインフレーム上で生成される LOAD カードを使用した JCL の例を示します。

//DSNCUSTM JOB
//DSNUTILB EXEC PGM=HCOUTILB,PARM='HCOD,SH      '
//*
//SYSPRINT DD   SYSOUT=*
//UTPRINT  DD   SYSOUT=*
//SYSUDUMP DD   SYSOUT=*
//STPRIN01 DD   SYSOUT=*
//IDIOFF   DD   DUMMY
//*
//SYSUT1   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSUT1
//SORTOUT  DD   DISP=MOD,DSN=SH.DSNUTILB.SYSOUT
//SYSMAP   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSMAP
//SYSERR   DD   DISP=MOD,DSN=SH.DSNUTILB.SYSERR
//SYSREC   DD   DISP=SHR,DSN=SH.HCOSQL.CUSTOMRS
//SYSIN    DD   *
LOAD DATA INDDN SYSREC LOG NO RESUME NO REPLACE 
 EBCDIC  CCSID(00037,00000,00000)
 INTO TABLE
 "HCOSQL".
 "CUSTOMRS"
 WHEN(00001:00002) = X'0028'
 NUMRECS               242100
 ( "C_ID"
  POSITION(  00003:00006) INTEGER
 , "C_D_ID"
  POSITION(  00007:00008) SMALLINT
 , "C_W_ID"
  POSITION(  00009:00010) SMALLINT
 , "C_FIRST"
  POSITION(  00012:00029) VARCHAR
                          NULLIF(00011)=X'FF'
 , "C_MIDDLE"
  POSITION(  00031:00032) CHAR(00002)
                          NULLIF(00030)=X'FF'
 , "C_LAST"
  POSITION(  00034:00051) VARCHAR
                          NULLIF(00033)=X'FF'
 , "C_STREET_1"
  POSITION(  00053:00074) VARCHAR
                          NULLIF(00052)=X'FF'
 , "C_STREET_2"
  POSITION(  00076:00097) VARCHAR
                          NULLIF(00075)=X'FF'
 , "C_CITY"
  POSITION(  00099:00120) VARCHAR
                          NULLIF(00098)=X'FF'
 , "C_STATE"
  POSITION(  00122:00123) CHAR(00002)
                          NULLIF(00121)=X'FF'
 , "C_ZIP"
  POSITION(  00125:00133) CHAR(00009)
                          NULLIF(00124)=X'FF'
 , "C_PHONE"
  POSITION(  00135:00150) CHAR(00016)
                          NULLIF(00134)=X'FF'
 , "C_SINCE"
  POSITION(  00152:00177) TIMESTAMP EXTERNAL
                          NULLIF(00151)=X'FF'
 , "C_CREDIT"
  POSITION(  00179:00180) CHAR(00002)
                          NULLIF(00178)=X'FF'
 , "C_CREDIT_LIM"
  POSITION(  00182:00188) DECIMAL
                          NULLIF(00181)=X'FF'
 , "C_DISCOUNT"
  POSITION(  00190:00192) DECIMAL
                          NULLIF(00189)=X'FF'
 , "C_BALANCE"
  POSITION(  00194:00200) DECIMAL
                          NULLIF(00193)=X'FF'
 , "C_YTD_PAYMENT"
  POSITION(  00202:00208) DECIMAL
                          NULLIF(00201)=X'FF'
 , "C_PAYMENT_CNT"
  POSITION(  00210:00211) SMALLINT
                          NULLIF(00209)=X'FF'
 , "C_DELIVERY_CNT"
  POSITION(  00213:00214) SMALLINT
                          NULLIF(00212)=X'FF'
 , "C_DATA"
  POSITION(  00216:00717) VARCHAR
                          NULLIF(00215)=X'FF'
 )
 
/*
//

ここで、HCOD はデータベース接続の ODBC XAR ID であり、SQLUTB はプログラム HCOUTILB のエイリアスとして確立されており、SH.HCOSQL.CUSTOMRS は SYSREC にマッピングされるカタログ化されたデータ ファイルです。

LOAD オプション

標準 LOAD オプション
DATA
構文上のオプション。
REPLACE
REPLACE は RESUME YES と相互に排他的です。REPLACE または RESUME YES が必要です。

REPLACE も RESUME YES もない場合は、空の状態をともなうターゲット テーブルに基づいて警告が生成されます。

DISCARDDN
このオプションの動作は、一意の索引の処理において DB2 for z/OS とは異なります。このツールは、入力データ セットで重複をチェックせずに、すべてのデータをデータベースに転送します。データ セットに重複レコードがある場合、最初のインスタンスのみがターゲット テーブルにロードされ、テーブル内の既存のレコードに同じ索引がないと見なします。
LOG NO|YES
このオプションは、構文的には受け入れられますが、LOG YES のみがサポートされる動作であるため無視されます。
RESUME YES
RESUME YES は REPLACE と相互に排他的です。RESUME YES または REPLACE が必要です。

RESUME YES も REPLACE もない場合は、空の状態をともなうターゲット テーブルに基づいて警告が生成されます。

無視されるが、構文上は認識される LOAD オプション
  • CCSID
  • CONTINUE IF
  • COPYDDN
  • DISCARDS
  • ENFORCE
  • ERRDDN
  • FLOAT (S390/IEEE)
  • FORMAT-SPEC
  • FREQVAL
  • HISTORY
  • INCURSOR
  • INDEX
  • KEEPDICTIONARY
  • KEYCARD
  • MAPDDN
  • NOCOPYPEND
  • NOSUBS
  • PREFORMAT
  • RECOVERYDDN
  • REUSE
  • SHRLEVEL
  • SORTDEVT
  • SORTKEY
  • SORTNUMS
  • STATISTICS
  • WORKDDN
サポートされない LOAD オプション
  • COPYDICTIONARY
  • DECFLOAT ROUNDMODE-SPEC
  • IDENTITYOVERRIDE
  • INDEXDEFER
  • PRESORTED

仕様

INTO TABLE 仕様
INTO TABLE 仕様には複数のオプションがあります。
INTO TABLE でサポートされるオプション
  • WHEN
  • NUMRECS
  • FIELD SPECIFICATION
  • PART (DB2 LUW 専用)
無視されるが、構文上は認識される INTO TABLE オプション
  • IGNOREFIELDS
  • PART (DB2 LUW を除くすべての DBMS 用)
LOAD 仕様
  • INDDN SYSREC (または ddname)
  • EBCDIC/ASCII/UNICODE
注: メインフレームとは異なり、SQLUTB LOAD にはデフォルトで EBCDIC ではなく ASCII が設定されています。
FIELD 仕様
FIELD 仕様でサポートされる SQL データ型
  • INTEGER、BIGINT、SMALLINT
  • FLOAT、REAL
  • DECIMAL
  • CHAR、VARCHAR (UP TO VARCHAR(20000))
  • GRAPHIC、VARGRAPHIC
  • DATE、TIME、TIMESTAMP
  • BINARY、VARBINARY
FIELD 仕様でサポートされない SQL データ型
  • DECFLOAT
  • ROWID
  • BLOB
  • CLOB
  • DBCLOB
  • XML
重要: 1 つのコミットまたは複数のコミットを発行するように SQLUTB LOAD コミットの動作を構成することができます。詳細については、「MBDT 構成ユーティリティ」を参照してください。
注: To ensure proper parsing of SYSIN, do not include the tab character (ASCII decimal character code 9; EBCDIC decimal character code 5) in its contents. When parsed, the tab character could cause spurious, unintended errors.