ヘッダーをスキップ
Oracle TimesTen In-Memory Database SQLリファレンス・ガイド
リリース11.2.1
B56051-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

ALTER SESSION

ALTER SESSION文は、セッション・パラメータを動的に変更します。

必要な権限

ありません。

SQL構文

ALTER SESSION SET
  {NLS_SORT = {BINARY| SortName} |
   NLS_LENGTH_SEMANTICS = {BYTE|CHAR} |
   NLS_NCHAR_CONV_EXCP = {TRUE|FALSE} |
   ISOLATION_LEVEL = {SERIALIZABLE | READ COMMITTED} |
   PLSQL_TIMEOUT = n |
   PLSQL_OPTIMIZE_LEVEL = {0|1|2|3}|
   PLSCOPE_SETTINGS = {'IDENTIFIERS:ALL'|'IDENTIFIERS:NONE'} |
   PLSQL_CONN_MEM_LIMIT = n
   } ...

パラメータ

ALTER SESSION文には、次のパラメータがあります。

パラメータ 説明
NLS_SORT={BINARY| SortName} 言語の比較に使用する照合の順序を示します。

大/小文字を区別しないソートの場合またはアクセントを区別しないソートの場合は、BINARYまたはSortName値に_CIまたは_AIを追加します。

NLS_SORTを指定しない場合、デフォルトはBINARYです。

SortNameに指定できるすべての値のリストは、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のサポートされている言語ソートに関する説明を参照してください。

大/小文字を区別しないソートまたはアクセントを区別しないソートの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の大/小文字またはアクセントを区別しない言語ソートに関する説明を参照してください。

NLS_LENGTH_SEMANTICS ={BYTE|CHAR} 長さセマンティクス構成のデフォルトを設定します。 BYTEはバイト長セマンティクスを示します。 CHARは文字長セマンティクスを示します。デフォルトはBYTEです。

長さセマンティクスの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の長さセマンティクスおよびデータ記憶域に関する説明を参照してください。

NLS_NCHAR_CONV_EXCP = {TRUE|FALSE} NCHAR/NVARCHAR2データとCHAR/VARCHAR2データ間でキャラクタ・タイプの暗黙的または明示的な変換中にデータの損失があった場合に、エラーを報告するかどうかを指定します。 TRUEを指定するとエラーが報告されます。 FALSEを指定するとエラーは報告されません。デフォルトはFALSEです。
ISOLATION_LEVEL = {SERIALIZABLE|READ COMMITTED} 分離レベルを設定します。 変更は次のトランザクションから有効になります。

分離レベルの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』を参照してください。

PLSQL_TIMEOUT= n 自動終了するまでのPL/SQLプロシージャの実行時間を制御します。nは、時間(秒)を示します。 0(ゼロ)を指定して時間制限をなしにするか、または正の整数を指定します。 デフォルトは30です。

この値を変更すると、新しい値は、現在実行しているPL/SQLプログラム・ユニットおよび同じ接続でこの後実行される他のすべてのプログラム・ユニットに影響します。

データベースでPL/SQLが無効になっているときにこの属性を指定した場合、TimesTenによってエラーがスローされます。

PLSQL_OPTIMIZE_LEVEL = {0|1|2|3} PL/SQLライブラリ・ユニットのコンパイルに使用する最適化レベルを指定します。 設定を高くするほど、PL/SQLライブラリ・ユニットを最適化するためにコンパイラにかかる負荷が大きくなります。 可能な値は0、1、2または3です。デフォルトは2です。

データベースでPL/SQLが無効になっているときにこの属性を指定した場合、TimesTenによってエラーが返されます。

詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。

PLSCOPE_SETTINGS = '{IDENTIFIERS:ALL |IDENTIFIERS:NONE}' PL/SQLコンパイラで相互参照情報を生成するかどうかを制御します。 相互参照情報を生成するには、IDENTIFIERS:ALLを指定します。 デフォルトはIDENTIFIERS:NONEです。

データベースでPL/SQLが無効になっているときにこの属性を指定した場合、TimesTenによってエラーが返されます。

詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。

PLSQL_CONN_MEM_LIMIT = n PL/SQLでこの接続に使用できるプロセス・ヒープ・メモリーの最大容量を指定します。nは整数で、MB単位で示します。 デフォルトは100です。

データベースでPL/SQLが無効になっているときにこの属性を指定した場合、TimesTenによってエラーが返されます。

詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。


説明

ALTER SESSION文を使用して、PLSQL_TIMEOUTを60秒に変更します。 2つ目のALTER SESSION文を使用して、PLSQL_OPTIMIZE_LEVELを3に変更します。次に、ttConfigurationをコールして新しい値を表示します。

Command> ALTER SESSION SET PLSQL_TIMEOUT = 60;Session altered.Command> ALTER SESSION SET PLSQL_OPTIMIZE_LEVEL = 3;Session altered.

Command> CALL TTCONFIGURATION ();< CkptFrequency, 600 >< CkptLogVolume, 0 >< CkptRate, 0 >
...< PLSQL_OPTIMIZE_LEVEL, 3 >< PLSQL_TIMEOUT, 60 >...47 rows found.

この例では、PLSQL_TIMEOUTを20秒に設定します。 無限にループするプログラムを実行してみます。 20秒で実行が終了し、エラーが戻されます。

Command> ALTER SESSION SET PLSQL_TIMEOUT = 20;Command> DECLARE v_timeout NUMBER;       > BEGIN       >   LOOP       >     v_timeout :=0;       >     EXIT WHEN v_timeout < 0;       >   END LOOP;       > END;       > / 8509: PL/SQL execution terminated; PLSQL_TIMEOUT exceeded

ttConfigurationをコールして、現在のPLSCOPE_SETTINGSの値を表示します。 ALTER SESSION文を使用して、PLSCOPE_SETTINGSの値をIDENTIFIERS:ALLに変更します。 ダミーのプロシージャpを作成します。 システム・ビューSYS.USER_PLSQL_OBJECT_SETTINGSに問合せを発行して、プロシージャpに新しい設定が適用されていることを確認します。

Command> CALL TTCONFIGURATION ();< CkptFrequency, 600 >< CkptLogVolume, 0 >< CkptRate, 0 >
...< PLSCOPE_SETTINGS, IDENTIFIERS:NONE >...47 rows found.

Command> ALTER SESSION SET PLSCOPE_SETTINGS = 'IDENTIFIERS:ALL';

Session altered.

Command> CREATE OR REPLACE PROCEDURE p IS
       > BEGIN
       >  NULL;
       > END;
       > /

Procedure created.

Command> SELECT PLSCOPE_SETTINGS FROM SYS.USER_PLSQL_OBJECT_SETTINGS WHERE
       > NAME = 'p';
< IDENTIFIERS:ALL >
1 row found.

次の例では、ALTER SESSION文を使用してNLS_SORT設定をBINARYからBINARY_CIに変更し、さらにBINARY_AIに変更しています。データベースおよび接続のキャラクタ・セットはWE8ISO8859P1です。

Command> connect "dsn=cs;ConnectionCharacterSet=WE8ISO8859P1";
Connection successful: DSN=cs;UID=user;DataStore=/datastore/user/cs;
DatabaseCharacterSet=WE8ISO8859P1;
ConnectionCharacterSet=WE8ISO8859P1;PermSize=32;TypeMode=0;
(Default setting AutoCommit=1)
Command>#Create the Table
Command> CREATE TABLE collatingdemo (letter VARCHAR2 (10));
Command>#Insert values
Command> INSERT INTO collatingdemo VALUES ('a');
1 row inserted.
Command> INSERT INTO collatingdemo VALUES ('A');
1 row inserted.
Command> INSERT INTO collatingdemo VALUES ('Y');
1 row inserted.
Command> INSERT INTO collatingdemo VALUES ('ä');
1 row inserted.
Command>#SELECT
Command> SELECT * FROM collatingdemo;
< a >
< A >
< Y >
< ä >
4 rows found.
Command>#SELECT with ORDER BY
Command> SELECT * FROM collatingdemo ORDER BY letter;
< A >
< Y >
< a >
< ä >
4 rows found.
Command>#set NLS_SORT to BINARY_CI and SELECT
Command> ALTER SESSION SET NLS_SORT = BINARY_CI;
Command> SELECT * FROM collatingdemo ORDER BY letter;
< a >
< A >
< Y >
< Ä >
< ä >
4 rows found.
Command>#Set NLS_SORT to BINARY_AI and SELECT
Command> ALTER SESSION SET NLS_SORT = BINARY_AI;
Command> SELECT * FROM collatingdemo ORDER BY letter;
< ä >
< a >
< A >
< Y >
4 rows found.