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

3.58 SET SCHEMA文

機能

動的SQLの被準備文の省略したスキーマ名を変更します。

記述形式

一般規則

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

  • 指定された前後の空白を取り除いた値が被準備文中の省略したスキーマ名となります。

  • データベース名で修飾したスキーマ名が指定できます。データベース名で修飾したスキーマ名が指定された場合、以下のSQL文が暗に実行されます。

    SET SCHEMA 'RDBDB1.SCH1'

    上記のSQL文を指定した場合、以下のSQL文を順番に実行したのと同じ意味です。

    1. SET CATALOG 'RDBDB1'

    2. SET SCHEMA 'SCH1'


使用例

1

スキーマ名を“SCH1”に変更します。なお、可変長文字型の展開規則は、“6.3 SQL埋込みCプログラム”を参照してください。

EXEC SQL BEGIN DECLARE SECTION;
     VARCHAR STMSTR[100];
EXEC SQL END DECLARE SECTION;
strcpy(STMSTR.sqlvar,"SELECT * FROM 在庫表");        (1)
STMSTR.sqllen = strlen(STMSTR.sqlvar);
EXEC SQL CONNECT TO 'RDBDB1' USER 'USER1/PASS1';
EXEC SQL PREPARE STM1 FROM :STMSTR;                  (2)
EXEC SQL SET SCHEMA 'SCH1';                          (3)
EXEC SQL PREPARE STM1 FROM :STMSTR;                  (4)

(1) スキーマ名省略

(2) 参照するスキーマ名: USER1

(3) スキーマ名変更

(4) 参照するスキーマ名: SCH1


2

スキーマ名を“SCH1”または“SCH2”に変更します。

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 'RDBDB1' USER 'USER1/PASS1';
EXEC SQL SET SCHEMA 'SCH1';
EXEC SQL PREPARE STM1 FROM :STMSTR1;                  (1)
EXEC SQL EXECUTE STM1;                                (1)
EXEC SQL PREPARE STM2 FROM :STMSTR2;                  (1)
EXEC SQL SET SCHEMA 'SCH2';
EXEC SQL EXECUTE STM2;                                (1)
EXEC SQL EXECUTE IMMEDIATE :STMSTR2;                  (2)

(1) 対象となるスキーマ名: SCH1

(2) 対象となるスキーマ名: SCH2