機能
記述形式
![]()
一般規則
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