SQLTP2 ユーティリティ - 動的 SQL 文の実行

SQLTP2 ユーティリティは、DB2 DSNTEP2 に相当します。Enterprise Server で XAR 定義によって確立されている ODBC データベース接続を前提として、JCL に埋め込まれた動的 SQL 文を実行するために使用します。データベース移行プロセスでは、これを使用して DBMS に対して DDL を実行し、スキーマ オブジェクトを作成および変更します。

重要:メインフレームの DB2 と他の DBMS では参照整合性の実装に違いがあるため、初期 DSNTEP2 ステップを含めてテーブルを作成することをお奨めします。データのロード後、追加の DSNTEP2 ステップを実行して、索引および制約を作成できます。

SQLTP2 の実行

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

MBDT 構成ユーティリティを実行する場合、SQL 文を処理するためのオプションが 2 つあります。これらのオプションは、データベース タイプとして指定します。ネイティブの DBMS SQL 方言を使用するにはデフォルトの A[gnostic] に設定し、SQL Server 用の DB2 方言を使用するには H[COSS] に設定します。データベース タイプを HCOSS (SQL Server 用の DB2 方言) に設定した場合、SQLTP2 ユーティリティは、z/OS DB2 SQL 文を SQL Server 文に変換してからディスパッチして実行するよう ESQL ランタイムに命令します。

SQL Server 用の DB2 方言を使用した CREATE TABLE 文の JCL の例を次に示します。

注:MBDT 構成ユーティリティの HCOSS オプションでは、方言が混在する SQL 文をサポートしていません。また、SQL 文に SQL Server 固有の構文が含まれる場合は、エラーが発生します。
//DDLJOB2 JOB 
//RESETDB  EXEC PGM=IKJEFT01
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSPUNCH DD  SYSOUT=*                                
//SYSREC00 DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//SYSTSIN  DD  *
 DSN SYSTEM(HCOD)
 RUN  PROGRAM(DSNTEP2)
 END
/*
//SYSIN DD *
CREATE TABLE HCOSQL.EMP
(
EMPNO       CHAR(6) NOT NULL,
FIRSTNME    VARCHAR(12) NOT NULL,
MIDINIT     CHAR(1) NOT NULL,
LASTNAME    VARCHAR(15) NOT NULL,
WORKDEPT    CHAR(3),
PHONENO     CHAR(4),
HIREDATE    DATE,
JOB         CHAR(8),
EDLEVEL     SMALLINT,
SEX         CHAR(1),
BIRTHDATE    DATE,
SALARY      DECIMAL(9,2),
BONUS       DECIMAL(9,2),
COMM        DECIMAL(9,2),
PRIMARY KEY (EMPNO)
) IN XDBIBMDB.XDBIBMTS;

/*
//

ここで、HCOD はデータベース接続の ODBC XAR ID であり、SQLTP2 は DSNTEP2 のエイリアスとして確立されており、セミコロン (;) は SQL ターミネーターです。

パラメーター

サポートされている SQLTP2 パラメーターは、次のとおりです。

制御文

SYSIN データ セットの制御文では次の構文を使用します。
--#SET control-option-value
ここで、control-option-value には、次のいずれかを指定できます。
  • TERMINATOR
  • ROWS_FETCH
  • ROWS_OUT
  • MAXERRORS
  • TOLARTHWRN
  • TOLWARN
次の制御オプション値およびエラー発生値はサポートされていません。
  • MULTI-FETCH
  • PREPWARN
  • SQLFORMAT