SET SERVER OPTION ステートメント
SET SERVER OPTION ステートメントは、 ユーザーまたはアプリケーションがフェデレーテッド・データベースに接続中に有効となる、 サーバー・オプションの設定値を指定します。 接続が終了すると、このサーバー・オプションの以前の設定値が復元されます。
このステートメントは、トランザクションの制御下にありません。
呼び出し
このステートメントは、対話式に発行することができます。 このステートメントは、動的に作成できる実行可能ステートメントです。
許可
必要ありません。
構文
説明
- サーバー・オプション名
- 設定するサーバー・オプションを指名します。
- TO ストリング定数
- server-option-name の設定を、文字ストリング定数として指定します。
- サーバー server-name
- server-option-name が適用されるデータ・ソースを指定します。 これは、カタログに記述されているサーバーでなければなりません。
注
- サーバー・オプション名は、大文字または小文字で入力することができます。
- ユーザーまたはアプリケーションがフェデレーテッド・データベースに接続する際、 1 つまたは複数の SET SERVER OPTION ステートメントをサブミットすることができます。 このステートメント (複数可) は、接続が確立した後、 最初に処理される作業単位の初めに指定する必要があります。
- SYSCAT.SERVEROPTIONS は SET SERVER OPTION ステートメントに基づいては更新されません。 この変更内容は現行接続だけに影響を与えるからです。
- 静的 SQL の場合、SET SERVER OPTION ステートメントの使用は、その静的 SQL ステートメントの実行だけに影響します。 SET SERVER OPTION ステートメントを使用しても、オプティマイザーによって生成されたプランは影響を受けません。
例
- 例 1: DJDB というフェデレーテッド・データベースに、
ORASERV という Oracle データ・ソースを定義します。 ORASERV は、プランのヒントを使用できないように構成されます。 しかし、DBA は新しいアプリケーションを試験的に実行するため、
プランのヒントを使用できるようにすることを希望しています。 実行を終了すると、プランのヒントは再度使用不可になります。
CONNECT TO DJDB; strcpy(stmt,"set server option plan_hints to 'Y' for server oraserv"); EXEC SQL EXECUTE IMMEDIATE :stmt; strcpy(stmt,"select c1 from ora_t1 where c1 > 100"); /*Generate plan hints*/ EXEC SQL PREPARE s1 FROM :stmt; EXEC SQL DECLARE c1 CURSOR FOR s1; EXEC SQL OPEN c1; EXEC SQL FETCH c1 INTO :hv;
- 例 2: すべての Oracle 8 データ・ソースで、サーバー・オプション PASSWORD を 'Y' (データ・ソースでパスワードを妥当性検査する) に設定しました。 しかし、特定の Oracle 8 データ・ソース (フェデレーテッド・データベース DJDB に ORA8A-passwords と定義されているデータ・ソース) にアクセスするために、アプリケーションがフェデレーテッド・データベースに接続するような特定のセッションの場合、パスワードを妥当性検査する必要はありません。
CONNECT TO DJDB; strcpy(stmt,"set server option password to 'N' for server ora8a"); EXEC SQL PREPARE STMT_NAME FROM :stmt; EXEC SQL EXECUTE STMT_NAME FROM :stmt; strcpy(stmt,"select max(c1) from ora8a_t1"); EXEC SQL PREPARE STMT_NAME FROM :stmt; EXEC SQL DECLARE c1 CURSOR FOR STMT_NAME; EXEC SQL OPEN c1; /*Does not validate password at ora8a*/ EXEC SQL FETCH c1 INTO :hv;