この説明では、DB2 Universal Database を使用していることを前提とし、以下のタスクを順番に説明していきます。
注 RESERVDB 表を作成してそれにアクセスする際には、以下の問題に注意してください。
以下のステップを実行します。
Windows の場合:
install_dir は、DB2 製品のインストール・ディレクトリーへのパスで置き換える必要があります (C:¥PROGRA~1¥IBM¥SQLLIB など)。この場所は、以下の db2level コマンドを使って取得することができます。
CREATE DB RESERVDB CONNECT TO RESERVDB BIND 'install_dir\bnd\@db2cli.lst' blocking all grant public TERMINATE
Linux の場合:
install_dir は、DB2 製品のインストール・ディレクトリーへのパスで置き換える必要があります。この場所は、以下の db2level コマンドを使って取得することができます。CREATE DB RESERVDB CONNECT TO RESERVDB BIND install_dir/bnd/@db2cli.lst grant public CLIPKG 5 TERMINATE
db2start
db2 -vf airline1.sql
テキスト・エディターで新しい文書を開き、XMLFLIGHTTB 表および XMLPASSENGERTB 表を作成し、XMLFLIGHTTB 表にデータを取り込む以下のスクリプトをコピーしてその文書に貼り付け、ファイル名を airline2.sql として、そのファイルを保存します。
CONNECT TO RESERVDB DROP TABLE XMLFLIGHTTB CREATE TABLE XMLFLIGHTTB (FLIGHTDATE CHAR(8) NOT NULL, FLIGHTNO CHAR(5) NOT NULL, ECONOMICCLASS INTEGER NOT NULL, FIRSTCLASS INTEGER NOT NULL, TOTALECONOMIC INTEGER NOT NULL, TOTALFIRST INTEGER NOT NULL, ECONOMICPRICE INTEGER NOT NULL, FIRSTPRICE INTEGER NOT NULL, STARTPOINT CHAR(20) NOT NULL, ENDPOINT CHAR(20) NOT NULL, RESERVATIONSEQNO INTEGER NOT NULL, CONSTRAINT FLIGHT_UNIQ UNIQUE(FLIGHTDATE, FLIGHTNO)) INSERT INTO XMLFLIGHTTB VALUES('20030218', 'CA937', 0, 0, 200, 50, 200, 300, 'BEIJING', 'LONDON', 0) INSERT INTO XMLFLIGHTTB VALUES('20030525', 'BA039', 0, 0, 180, 40, 220, 320, 'LONDON', 'BEIJING', 0) INSERT INTO XMLFLIGHTTB VALUES('20030525', 'CA937', 0, 0, 200, 50, 200, 300, 'BEIJING', 'LONDON', 0) INSERT INTO XMLFLIGHTTB VALUES('20030219', 'BA039', 0, 0, 180, 40, 220, 320, 'LONDON', 'BEIJING', 0) DROP TABLE XMLPASSENGERTB CREATE TABLE XMLPASSENGERTB (LASTNAME CHAR(20) NOT NULL, FIRSTNAME CHAR(20) NOT NULL, FLIGHTNO CHAR(5) NOT NULL, FLIGHTDATE CHAR(8) NOT NULL, CLASSTYPE CHAR(1) NOT NULL, RESERVATIONNO VARCHAR(40) NOT NULL, PRIMARY KEY(RESERVATIONNO)) TERMINATE
db2 -vf airline2.sql
スクリプトの実行が終了するまで待ちます。 初めてスクリプトを実行する場合は、以下のメッセージが表示されます (DB2ADMIN はご使用のユーザー名、XMLPASSENGERTB は表の名前です)。
DB21034E コマンドが、有効なコマンド行プロセッサー・コマンドでないため、SQL ステートメントとして処理されました。 SQL 処理中に、以下のコマンドが返されました。SQL0204N "DB2ADMIN.XMLPASSENGERTB" は未定義の名前です。SQLSTATE=42704これらのメッセージは無視してください。 メッセージが表示される理由は、スクリプトは XMLFLIGHTTB および XMLPASSENGERTB という既存の表を新規の表の作成前に除去しようとしますが、これまでスクリプトを実行したことがない場合は、スクリプトが既存の表を検出できないからです。
詳しくは、WebSphere Message Broker の資料で『 データベースへの ODBC 接続を使用可能にする』を参照してください。