機能
動的SQLの被準備文の省略したスキーマ名を変更します。
記述形式
一般規則
SET SCHEMA文で指定したスキーマの対象は、PREPARE文およびEXECUTE IMMEDIATE文の被準備文です。
使用例
スキーマ名を“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
スキーマ名を“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