ページの先頭行へ戻る
Symfoware Server V11.0.x SQLリファレンス
Symfoware

3.55 SET CATALOG文

機能

動的SQLの被準備文の対象となるデータベース名を変更します。

記述形式

一般規則

データベース名
  • 新しいデータベースの名前を指定します。データベース名は、文字列定数または文字列型の埋込み変数で指定します。

  • 指定された前後の空白を取り除いた値がデータベース名となります。

使用例

1

データベース名を“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


2

データベース名を“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