SQLTP2xx ユーティリティは DB2 DSNTEP2 に相当します。データベース接続が確立されている場合、これを使用して、JCL に埋め込まれた動的 SQL 文を実行します。データベース移行プロセスでは、これを使用して DBMS に対して DDL を実行し、スキーマ オブジェクトを作成および変更します。
SQLTP2xx ユーティリティを使用するには、JCL アプリケーション プロジェクトを作成するか、Enterprise Server の JES CONTROL 機能を使用して JCL を直接サブミットします。JCL 構文は、DB2 互換である必要があります。
SQL 文には、SQL Server 方言ではなく DB2 方言を使用します。DSNTEP2 プログラムは、SQL 文を SQL Server に送信して実行する前に、ESQL ランタイムを呼び出して方言の変換を処理します。SQL 文に SQL Server 固有の構文が含まれる場合は、エラーが発生します。例えば、SQL Server 方言では NULL 可能カラムのカラム定義に明示的な NULL を使用できますが、DB2 方言では NULL はサポートされていません。
SQL 文を処理するための 2 つのオプションが用意されています。ネイティブの DBMS SQL 方言 (非依存) を使用するか、DDL 文とともに SQL Server 用の DB2 方言 (HCOSS) を使用することができます。2 番目のオプションでは、SQLTP2xx ユーティリティは、SQL 文を方言に変換してから SQL Server に送信して実行するよう ESQL ランタイムに命令します。MBDT 構成ユーティリティを使用して、このどちらかのオプションを選択します。
SQL Server 用の DB2 方言を使用した CREATE TABLE 文の JCL の例を次に示します。
//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 は DSN 名です。SQLTP232 は DSNTEP2 のエイリアスとして確立されています。セミコロン (;) は SQL ターミネータです。
DB2 データ型と SQL Server データ型には、一部違いがあります。DSNTEP2 ユーティリティは、HCOSS 変換に次のデータ タイプ マッピングを使用します。
DB2 データ型 | SQL Server データ型 |
---|---|
INTEGER | INTEGER |
BIGINT | BIGINT |
SMALLINT | SMALLINT |
DOUBLE | FLOAT(53) |
FLOAT(n) | FLOAT(n) |
REAL | REAL |
DECIMAL(p,s) | DECIMAL(p,s) |
CHAR | CHAR |
VARCHAR(n) n <= 8000 | VARCHAR(n) |
VARCHAR(n) n > 8000 | VARCHAR(max) |
GRAPHIC | NCHAR |
VARGRAPHIC | NVARCHAR |
DATE | DATE |
TIME | TIME(0) |
TIMESTAMP | DATETIME2(6) |
BINARY* | BINARY |
CHAR FOR BIT DATA* | BINARY |
BLOB* | VARBINARY(max) |
CLOB* | NVARCHAR(max) |
XML* | XML |
* SQLUTBxx ユーティリティではサポートされていません。 |