機能
記述形式
一般規則
SET CATALOG文で指定したデータベースの対象は、PREPARE文および、EXECUTE IMMEDIATE文の被準備文です。
使用例
データベース名を“RDBDB2”に変更します。なお、可変長文字型の展開規則は、“6.3 SQL埋込みCプログラム”を参照してください。
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR STMSTR[100];
EXEC SQL END DECLARE SECTION;
strcpy(STMSTR.sqlvar,"SELECT * FROM 在庫表");
STMSTR.sqllen = strlen(STMSTR.sqlvar);
EXEC SQL CONNECT TO 'RDBDB1' USER 'USER1/PASS1';
EXEC SQL PREPARE STM1 FROM :STMSTR; (1)
EXEC SQL SET CATALOG 'RDBDB2'; (2)
EXEC SQL PREPARE STM1 FROM :STMSTR; (3)
(1) 参照するデータベース名: RDBDB1
(2) データベース名変更
(3) 参照するデータベース名: RDBDB2
データベース名を“RDBDB1”または“RDBDB2”に変更します。
EXEC SQL BEGIN DECLARE SECTION; VARCHAR STMSTR1[100]; VARCHAR STMSTR2[100]; EXEC SQL END DECLARE SECTION; strcpy(STMSTR1.sqlvar,"SELECT * FROM 在庫表"); STMSTR1.sqllen = strlen(STMSTR1.sqlvar); strcpy(STMSTR2.sqlvar,"SELECT * FROM 会社表"); STMSTR2.sqllen = strlen(STMSTR2.sqlvar); EXEC SQL CONNECT TO 'RDBDB' USER 'USER1/PASS1'; EXEC SQL SET CATALOG 'RDBDB1'; EXEC SQL PREPARE STM1 FROM :STMSTR1; (1) EXEC SQL EXECUTE STM1; (1) EXEC SQL PREPARE STM2 FROM :STMSTR2; (1) EXEC SQL SET CATALOG 'RDBDB2'; EXEC SQL EXECUTE STM2; (1) EXEC SQL EXECUTE IMMEDIATE :STMSTR2; (2)
(1) 対象となるデータベース: RDBDB1
(2) 対象となるデータベース: RDBDB2