機能
動的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