SQLUTB LOAD

注:これは技術評価機能としてのみ提供されます。この新機能について、テストおよびフィードバックができるようになる予定です。ただし、この機能はプロダクション使用を目的としたものではなく、プロダクション使用はサポートされていません。また、この機能は GA レベルでの提供が保証されるものではないため、実際提供されるバージョンは技術評価版と大きく異なる可能性があります。
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 YES または RESUME YES オプションを含めるようにする必要があります。どちらも含まれていない場合には、JCL ジョブが異常終了します。

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 YES
REPLACE YES は相互に RESUME YES に限定されます。REPLACE YES または RESUME YES が必要です。

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

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

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

無視されるが、構文上は認識される 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
  • GRAPHIC
  • VARGRAPHIC
  • ROWID
  • BLOB
  • CLOB
  • DBCLOB
  • XML
重要:1 つのコミットまたは複数のコミットを発行するように SQLUTB LOAD コミットの動作を構成することができます。詳細は、「MBDT 構成ユーティリティ」を参照してください。