
■ 接続
前回までの記事で、複数のデータベースに接続するための方法論の確認までは出来ました。ですが、これまでのサンプルでは実際には1つのデータベースにしか接続していません。
という事で、今回は2つのデータベースに接続します。
IDENTIFICATION DIVISION.
PROGRAM-ID. DBTEST00.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
*
WORKING-STORAGE SECTION.
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 H-USERNAME PIC X(010).
01 H-PASSWD PIC X(010).
01 H-DBSTRING PIC X(010).
01 H-DBNAME PIC X(010).
*
01 H-USERNAME2 PIC X(010).
01 H-PASSWD2 PIC X(010).
01 H-DBSTRING2 PIC X(010).
01 H-DBNAME2 PIC X(010).
*
EXEC SQL END DECLARE SECTION END-EXEC.
EXEC SQL INCLUDE SQLCA END-EXEC.
*
PROCEDURE DIVISION.
*
* Oracle接続文字列の設定(DWH)
MOVE "user01" TO H-USERNAME.
MOVE "oracle" TO H-PASSWD.
MOVE "db1" TO H-DBSTRING.
MOVE "setu1" TO H-DBNAME.
*
* Oracle接続(DWH)
EXEC SQL
CONNECT :H-USERNAME IDENTIFIED BY :H-PASSWD
AT :H-DBNAME
USING :H-DBSTRING
END-EXEC.
*
* SQLCODEとメッセージを出力(エラー確認用)
DISPLAY "SQLCODE = "SQLCODE " [" SQLERRMC "]".
*
* Oracle接続文字列の設定(基幹)
MOVE "user02" TO H-USERNAME2.
MOVE "oracle" TO H-PASSWD2.
MOVE "db2" TO H-DBSTRING2.
MOVE "setu2" TO H-DBNAME2.
*
* Oracle接続(基幹)
EXEC SQL
CONNECT :H-USERNAME2 IDENTIFIED BY :H-PASSWD2
AT :H-DBNAME2
USING :H-DBSTRING2
END-EXEC.
*
* SQLCODEとメッセージを出力(エラー確認用)
DISPLAY "SQLCODE = "SQLCODE " [" SQLERRMC "]".
EXIT PROGRAM.
■ 後書き
特に難しいことも無く、接続するための変数とか処理を増やしただけで上手く動きました。ここまでは順調ですね。
さて、次回はトランザクションについて動作を確認したいと思います。
前回:NetCOBOLで複数のDBに接続したい! No4 DML文
次回:NetCOBOLで複数のDBに接続したい! No6 トランザクション
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end ---
スポンサードリンク


