ALTER SESSION
ALTER SESSION文は、セッション・パラメータを動的に変更します。これは、現在のセッションの同等の接続属性の設定を上書きします(適用可能な場合)。
必要な権限
なし
TimesTen Scaleoutでの使用
この文は、TimesTen Scaleoutでサポートされています。ただし、これらのパラメータはサポートされていません。
-
DDL_REPLICATION_ACTION -
DDL_REPLICATION_LEVEL -
REPLICATION_TRACK
SQL構文
ALTER SESSION SET
{COMMIT_BUFFER_SIZE_MAX = n |
DDL_REPLICATION_ACTION={'INCLUDE'|'EXCLUDE'} |
DDL_REPLICATION_LEVEL={1|2|3} |
ISOLATION_LEVEL = {SERIALIZABLE | READ COMMITTED} |
NLS_SORT = {BINARY| SortName} |
NLS_LENGTH_SEMANTICS = {BYTE|CHAR} |
NLS_NCHAR_CONV_EXCP = {TRUE|FALSE} |
PLSQL_TIMEOUT = n |
PLSQL_OPTIMIZE_LEVEL = {0|1|2|3}|
PLSQL_CONN_MEM_LIMIT = n |
PLSQL_CCFLAGS = 'name1:value1, name2:value2,..., nameN:valueN' |
PLSQL_SESSION_CACHED_CURSORS = n |
REPLICATION_TRACK = TrackNumber |
} パラメータ
| パラメータ | 説明 |
|---|---|
|
|
接続の実行中に、コミット・バッファの最大サイズを変更します。nは整数で表現され、コミット・バッファの最大サイズ(MB)を示します。 変更は次のトランザクションから有効になります。
コミット・バッファおよびトランザクションの再利用操作の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「トランザクションの再要求操作」、および『Oracle TimesTen In-Memory Databaseリファレンス』の「CommitBufferSizeMax」を参照してください。 ノート: 同等の接続属性は |
|
|
表または順序のいずれかの作成時に表または順序をアクティブ・スタンバイ・ペアに含めるには、
この属性が有効なのは、 詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』の「アクティブ・スタンバイ・ペアでのDDL変更」を参照してください。 ノート: 同等の接続属性は |
|
|
DDLがアクティブ・スタンバイ・ペアのすべてのデータベースにわたってレプリケートされるかどうかを指定します。値は次のいずれかです。
詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』の「アクティブ・スタンバイ・ペアでのDDL変更」を参照してください。 ノート: 同等の接続属性は |
|
|
分離レベルを設定します。変更は次のトランザクションから有効になります。 分離レベルの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「トランザクションの分離レベル」を参照してください。 ノート: 同等の接続属性は |
|
|
言語の比較に使用する照合の順序を示します。 大/小文字を区別しないソートの場合またはアクセントを区別しないソートの場合は、
大/小文字を区別しないソートまたはアクセントを区別しないソートの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「大/小文字およびアクセントを区別しない言語ソート」を参照してください。 |
|
|
長さセマンティクス構成のデフォルトを設定します。 長さセマンティクスの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「データ格納に影響する文字セットの長さセマンティクス」を参照してください。 |
|
|
|
|
|
PL/SQLプロシージャが自動的に終了されるまでの実行時間を制御します。 この値を変更すると、新しい値は、現在実行しているPL/SQLプログラム・ユニットおよび同じ接続でこの後実行される他のすべてのプログラム・ユニットに影響します。 タイムアウト値の設定の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「SQLおよびPL/SQLのタイムアウト値の選択」を参照してください。 |
|
|
PL/SQLライブラリ・ユニットのコンパイルに使用する最適化レベルを指定します。設定値が高いほど、コンパイラでPL/SQLライブラリ・ユニットを最適化するのに多くの処理が必要になります。可能な値は0、1、2または3です。デフォルトは2です。 詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「PLSQL_OPTIMIZE_LEVEL」を参照してください。 |
|
|
この接続でPL/SQLが使用できるプロセス・ヒープ・メモリーの最大量を指定します。 詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「PLSQL_CONN_MEM_LIMIT」を参照してください。 |
|
|
PL/SQLユニットの条件付きコンパイルを制御する問合せディレクティブを指定し、確認する条件に応じて、PL/SQLプログラムの機能をカスタマイズできます。たとえば、デバッグ機能をアクティブ化するには、次のようにします。 PLSQL_CCFLAGS = 'DEBUG:TRUE' |
|
|
キャッシュするセッション・カーソルの最大数を指定します。デフォルトは50です。値の範囲は1から65535です。 TimesTenの |
|
|
追跡ベース・パラレル・レプリケーションを管理している場合は、レプリケーション追跡に接続を割り当てることができます。接続によって発行されたすべてのトランザクションは、追跡が変更されないかぎり、この追跡に割り当てられます。 指定された番号が、存在しないレプリケーション・トラック 先行する操作がすべて読取り操作だった場合を除き、トランザクションの途中でトラックを変更することはできません。 詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』の「自動パラレル・レプリケーション環境でのレプリケーション・トラックの指定」を参照してください。 同等の接続属性は |
説明
-
ALTER SESSION文は、そのセッションで次に実行されるコマンドから作用します。ALTERSESSIONは暗黙的なコミットを実行しません。 -
クライアント・フェイルオーバーの場合、
ALTERSESSION文が失敗した接続で発行された場合は、その設定は表示されず、新しい接続に継承されます。ALTERSESSION文を再発行して、そのパラメータの値を再指定する必要があります。クライアント・フェイルオーバーの詳細は、TimesTen Classicの場合は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の「自動クライアント・フェイルオーバーの使用」を参照してください。また、TimesTen Scaleoutの場合は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』の「クライアント接続のフェイルオーバー」を参照してください。 -
文字比較を含む演算では、言語を区別する照合順番がサポートされています。大/小文字を区別しないソートは、
DISTINCT値の解釈に影響することがあります。 -
CHARとNCHAR間の暗黙的および明示的な変換がサポートされています。 -
サポートされている文字セットで、SQL文字列関数を使用できます。たとえば、
UPPERおよびLOWER関数では、ASCII以外のCHARおよびVARCHAR2文字とNCHARおよびNVARCHAR2文字がサポートされています。 -
選択した文字セットによっては、
CHARおよびVARCHAR2列のデータに対するメモリー消費に影響する可能性があります。 -
レプリケーション・スキームに含まれるすべてのデータベースの文字セットが一致している必要があります。
-
既存の表をアクティブ・スタンバイ・ペアに追加するには、
DDL_REPLICATION_LEVELを2以上に設定し、DDL_REPLICATION_ACTIONをINCLUDEに設定します。または、DDL_REPLICATION_ACTIONがEXCLUDEに設定されている場合は、ALTER ACTIVE STANDBY PAIR ... INCLUDE TABLE文を使用できます。この場合、ALTER ACTIVE STANDBY PAIR ... INCLUDE TABLE文を実行すると表の内容は切り捨てられるため、この文を実行する前に、表は空であり、すべてのデータベースに存在している必要があります。 -
既存の順序またはビューをアクティブ・スタンバイ・ペアに追加するには、
DDL_REPLICATION_LEVELを3に設定します。順序をレプリケーション・スキームに含めるには、DDL_REPLICATION_ACTIONをINCLUDEに設定する必要があります。これは、マテリアライズド・ビューには適用されません。 -
オブジェクトは、受信側データベースがそのレベルのレプリケーションをサポートするTimesTenリリースであり、アクティブ・スタンバイ・ペアのレプリケーション・スキーム用に構成されている場合にのみレプリケートされます。たとえば、11.2.2.7.0より前のデータベース・リリースへの順序のレプリケーション(
DDL_REPLICATION_LEVEL=3が必要)は、サポートされません。受信側データベースは、DDL_REPLICATION_LEVEL=2でサポートされているオブジェクトのレプリケーション用に、リリース11.2.1.8.0以上である必要があります。
例
ALTER SESSION文を使用してCOMMIT_BUFFER_SIZE_MAXを500MBに設定します。まず、ttConfigurationをコールして現在の接続設定を表示します。ALTER SESSION文を使用して、COMMIT_BUFFER_SIZE_MAXを500に変更します。ttConfigurationをコールして、新しい設定を表示します。
Command> CALL ttConfiguration ('CommitBufferSizeMax');
< CommitBufferSizeMax, 0 >
1 row found.
Command> ALTER SESSION SET COMMIT_BUFFER_SIZE_MAX = 500;
Session altered.
Command> CALL ttConfiguration ('CommitBufferSizeMax');
< CommitBufferSizeMax, 500 >
1 row found.
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
次の例では、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;
(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.
次の例では、コミット依存性を無効にした自動パラレル・レプリケーションを有効にします。ALTER SESSION文を使用して、現在の接続のレプリケーション・トラック数を5に変更します。レプリケーション・スキームのコミット依存性を無効にした自動パラレル・レプリケーションを有効にするには、ReplicationApplyOrderingを2に設定します。次に、REPLICATION_TRACKは常にReplicationParallelism以下の番号に設定します。たとえば、ReplicationParallelism接続属性を、REPLICATION_TRACKに設定された値である5よりも大きい6に設定できます。
Command> ALTER SESSION SET REPLICATION_TRACK = 5; Session altered.
次の例では、変更スタンバイ・レプリケーション・ペアのアクティブ・データベースでDDL_REPLICATON_LEVELを2に設定し、DDLReplicationActionを'INCLUDE'に設定して、列、表、シノニムおよび索引の追加および削除のレプリケーションを有効にします。
Command > ALTER SESSION SET DDL_REPLICATION_LEVEL=2; Session altered. Command > ALTER SESSION SET DDL_REPLICATION_ACTION='INCLUDE'; Session altered.
ノート:
DDL_REPLICATION_LEVELおよびDDL_REPLICATION_ACTIONの同等の接続属性は、それぞれDDLReplicationLevelおよびDDLReplicationActionです。