ALTER SESSION
目的
ALTER
SESSION
文を使用すると、データベースへの接続に影響するすべての条件またはパラメータを、設定または変更できます。この文は、データベースとの接続を切断するまで有効です。
前提条件
SQLトレース機能を使用可能または使用禁止にするには、ALTER
SESSION
システム権限が必要です。
再開可能な領域割当てを使用可能または使用禁止にするには、RESUMABLE
システム権限が必要です。
特に指定がないかぎり、これ以外の操作についての権限は必要ありません。
構文
alter_session::=
alter_session_set_clause::=
セマンティクス
ADVISE句
ADVISE
句を指定すると、分散トランザクションを強制処理するためのアドバイスをリモート・データベースに送ることができます。リモート・データベース内のDBA_2PC_PENDING
ビューのADVICE
列に、アドバイスが表示されます(値'C
'がCOMMIT
、'R
'がROLLBACK
、' 'がNOTHING
を示します)。トランザクションの状態がインダウトになった場合、データベース管理者は、このアドバイスを使用してトランザクションをコミットするか、ロールバックするかを決定できます。
単一トランザクションにおいて、ADVISE
句を指定したALTER
SESSION
文を複数発行し、リモート・データベースごとに異なるアドバイスを送ることができます。ADVISE句を指定した文はそれぞれ、ADVISE句を指定した別の文が発行されるまで、トランザクション内の後続する文で参照されるデータベースに対してアドバイスを送ります。
関連項目:
CLOSE DATABASE LINK句
CLOSE
DATABASE
LINK
を指定すると、データベース・リンクdblink
をクローズできます。データベース・リンクを使用するSQL文を発行した場合、Oracle Databaseは、このデータベース・リンクを使用してリモート・データベース上にセッションを作成します。この接続は、セッションの終了またはデータベース・リンクの数が初期化パラメータOPEN_LINKS
の値を超えるまでオープンされています。リンクをオープンしたままにしておくことによって発生するネットワークのオーバーヘッドを減らすには、セッションでデータベース・リンクを再度使用しない場合に、この句を使用してデータベース・リンクを明示的にクローズします。
関連項目:
ENABLE | DISABLE COMMIT IN PROCEDURE
プロシージャおよびストアド・ファンクションはPL/SQLで記述されるため、COMMIT
文とROLLBACK
文を発行できます。アプリケーション自体が直接発行していないCOMMIT
文やROLLBACK
文によって、アプリケーションが中断される場合、DISABLE
COMMIT
IN
PROCEDURE
を指定して、セッション中にコールされるプロシージャおよびストアド・ファンクションがこれらの文を発行しないように制御します。
その後、ENABLE
COMMIT
IN
PROCEDURE
を指定することによって、セッションでプロシージャおよびストアド・ファンクションがCOMMIT
およびROLLBACK
文を発行できるようになります。
一部のアプリケーションは、自動的にプロシージャおよびストアド・ファンクションでのCOMMIT
文やROLLBACK
文を禁止します。詳細は、ご使用のアプリケーションのドキュメントを参照してください。
ENABLE | DISABLE GUARD
ALTER
DATABASE
のsecurity_clause
を使用すると、SYS
ユーザー以外のユーザーは、プライマリ・データベースまたはスタンバイ・データベース上のデータまたはデータベース・オブジェクトを変更できなくなります。この句を使用すると、現行のセッションの設定を上書きできます。
関連項目:
GUARDの設定の詳細は、「security_clause」
を参照してください。
PARALLEL DML | DDL | QUERY
PARALLEL
パラメータを使用すると、そのセッションの後続のDML、DDLまたは問合せ文をパラレル実行するかどうかを指定できます。この句は、現行のセッション中に表自体を変更せずに、表の並列度を上書き可能にします。コミットされていないトランザクションは、DMLに対してこの句を実行する前に、コミットまたはロールバックされる必要があります。
関連項目:
ENABLE句
ENABLE
を指定すると、セッション内の後続文をパラレルで実行できます。これは、DDL文および問合せ文のデフォルトです。
-
DML
: パラレル・ヒントまたはパラレル句が指定されている場合に、DML文をパラレル・モードで実行します。 -
DDL
: パラレル句が指定されている場合に、DDL文をパラレル・モードで実行します。 -
QUERY
: パラレル・ヒントまたはパラレル句が指定されている場合に、問合せをパラレル・モードで実行します。
ENABLE句の制限事項
オプションのPARALLEL
integer
をENABLE
と組み合せて指定することはできません。
DISABLE句
DISABLE
を指定すると、セッション内の後続文をシリアルで実行できます。これは、DML文のデフォルトです。
-
DML
: DML文をシリアルで実行します。 -
DDL
: DDL文をシリアルで実行します。 -
QUERY
: 問合せをシリアルで実行します。
DISABLE句の制限事項
オプションのPARALLEL
integer
をDISABLE
と組み合せて指定することはできません。
FORCE句
FORCE
を使用すると、セッションの後続文を強制的にパラレル実行できます。パラレル句もパラレル・ヒントも指定されていない場合は、デフォルトの並列度が使用されます。この句は、セッションの後続文に指定されたすべてのparallel_clause
を上書きしますが、パラレル・ヒントによって上書きされます。
-
DML
: パラレルDML制限のどれにも違反していない場合、特定の並列度がこの句に指定されていないかぎり、セッションの後続のDML文は、デフォルトの並列度で実行されます。 -
DDL
: 特定の並列度がこの句に指定されていないかぎり、セッションの後続のDDL文は、デフォルトの並列度で実行されます。結果のデータベース・オブジェクトは、通常の並列度に対応します。FORCE
DDL
を指定した場合、そのセッションで作成されるすべての表は、自動的にデフォルトの並列度で作成されます。結果は、CREATE
TABLE
文で(デフォルトの並列度を使用して)parallel_clause
を指定した場合と同じです。 -
QUERY
: 特定の並列度がこの句に指定されていないかぎり、後続の問合せは、デフォルトの並列度で実行されます。
PARALLEL integer
並列度を明示的に指定する整数を指定します。
-
FORCE
DDL
では、並列度は後続のDDL文のパラレル句を上書きします。 -
FORCE
DML
およびFORCEQUERY
では、並列度は、データ・ディクショナリの表に格納されている現行の並列度を上書きします。 -
ヒントによって文に指定される並列度は、強制的に実行される並列度を上書きします。
次のDML操作は、この句に関係なくパラレル化されません。
-
クラスタ化表に対する操作
-
データベースまたはパッケージの状態を読み書きする埋込みファンクションを使用した操作
-
起動する可能性のあるトリガーを使用した表に対する操作
-
オブジェクト型、
LONG
またはLOBデータ型が含まれている表またはスキーマ・オブジェクトでの操作
RESUMABLE句
これらの句を使用すると、再開可能な領域割当てを使用可能および使用禁止にできます。この機能によって、領域不足のエラー条件が発生した場合に操作は停止され、エラー条件が修復されたときに中断したところから自動的に再開されます。
ノート:
再開可能な領域割当ては、ローカル管理表領域での操作で、完全にサポートされます。ディクショナリ管理表領域を使用する場合は、制限事項があります。制限事項の詳細は、『Oracle Database管理者ガイド』を参照してください。
ENABLE RESUMABLE
この句を使用すると、セッションに対する再開可能な領域割当てを使用可能にできます。
TIMEOUT
TIMEOUT
を使用すると、エラー条件が修復されるまで操作を停止する時間を秒単位で指定できます。エラー条件がTIMEOUT
で指定した時間までに修復されない場合は、停止操作は異常終了します。
NAME
NAME
を使用すると、ユーザー定義のテキスト文字列を指定でき、再開可能モードのセッション中に発行される文の識別に有効です。USER_RESUMABLE
データ・ディクショナリ・ビューおよびDBA_RESUMABLE
データ・ディクショナリ・ビューに、テキスト文字列が挿入されます。NAME
を指定しない場合は、デフォルト文字列「User
username
(userid
), Session
sessionid
, Instance
instanceid
」が挿入されます。
関連項目:
データ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
DISABLE RESUMABLE
この句を使用すると、セッションに対する再開可能な領域割当てを使用禁止にできます。
SHARD DDL句
これらの句は、シャード・データベースに接続している場合にのみ有効です。これらを使用すると、セッションで発行されるDDLが、シャード・カタログ・データベースおよびすべてのシャードに対して発行されるか、シャード・カタログ・データベースに対してのみ発行されるかを制御できます。
-
ENABLE
SHARD
DDL
を指定すると、セッションで発行されるDDLは、シャード・カタログ・データベースおよびすべてのシャードに対して発行されます。このモードは、SDBユーザー(シャード・カタログ・データベースおよびすべてのシャードに存在するユーザー)のデフォルトです。 -
DISABLE
SHARD
DDL
を指定すると、セッションで発行されるDDLは、シャード・カタログ・データベースに対してのみ発行されます。このモードは、ローカル・ユーザー(シャード・カタログ・データベースのみに存在するユーザー)のデフォルトです。
関連項目:
SYNC WITH PRIMARY
この句を使用すると、フィジカル・スタンバイ・データベース上のREDO Applyをプライマリ・データベースに同期できます。この句をALTER
SESSION
文とともに使用すると、文の発行時にスタンバイによって受信されたすべてのREDOデータがREDO Applyで適用されるまでブロックされます。スタンバイ・データベースのREDO転送状態がSYNCHRONIZED
でない場合、またはREDO Applyがアクティブでない場合、この句はエラーを戻し、同期は実行されません。
関連項目:
このセッション・パラメータの詳細は、『Oracle Data Guard概要および管理』を参照してください。
alter_session_set_clause
alter_session_set_clause
を使用すると、現行セッションの初期化パラメータ値またはエディションを設定できます。
初期化パラメータ
この句を使用して、次の2種類のパラメータを設定できます。
-
ALTER
SESSION
文の有効範囲内で動的な初期化パラメータ(「初期化パラメータおよびALTER SESSION」を参照) -
セッション・パラメータ(「セッション・パラメータおよびALTER SESSION」を参照)
同じalter_session_set_clause
で複数のパラメータに対する値を設定できます。
EDITION
EDITION
= edition
を指定すると、指定したエディションをデータベース・セッションのエディションとして設定できます。edition
に対するUSE
オブジェクト権限が必要であり、edition
は、あらかじめ作成されている必要があります。このエディションはUSABLE
である必要があります。
この文が正常に実行された場合、エディション化可能なパッケージに対応するPL/SQLパッケージ状態はデータベースにより廃棄されますが、エディション化が可能でないパッケージに対応するパッケージ状態は保持されます。
また、SQL*Plus CONNECT
コマンドのEDITION
パラメータを使用すると、起動時に現行セッションのエディションを設定できます。ただし、再帰的SQLまたはPL/SQLブロックでは、ALTER
SESSION
SET
EDITION
文を指定できません。
次の問合せを使用して、現行セッションで使用中のエディションを確認できます。
SELECT SYS_CONTEXT('USERENV', 'CURRENT_EDITION_NAME') FROM DUAL;
関連項目:
エディションの詳細は「CREATE EDITION」、エディションをUSABLE
に指定する方法の詳細は『Oracle Database PL/SQL言語リファレンス』を参照してください。
CONTAINER
マルチテナント・コンテナ・データベース(CDB)でこの句を使用すると、container_name
で指定したコンテナに切り替えることができます。
この句を使用するには、SET
CONTAINER
権限(共通に付与されている権限か、container_name
でローカルに付与されている権限のいずれか)を持つ共通ユーザーである必要があります。
container_name
には、次のいずれかを指定します。
-
ルートに切り替えるには
CDB$ROOT
-
シードに切り替えるには
PDB$SEED
-
プラガブル・データベース(PDB)に切り替えるにはPDB名。CDB内のPDBの名前を表示するには、
DBA_PDBS
ビューを問い合せます。
現行のセッションの接続先のコンテナを確認するには、SQL*Plus SHOW
CON_NAME
コマンドまたは次のSQL問合せを使用します。
SELECT SYS_CONTEXT('USERENV', 'CON_NAME') FROM DUAL;
SERVICE
デフォルトでは、コンテナに切り替えると、セッションはコンテナのデフォルト・サービスを使用します。コンテナの別のサービスを使用する場合は、SERVICE
句を指定します。service_name
に、使用するサービスの名前を指定します。
関連項目:
特定のコンテナへの切替えの詳細は、『Oracle Database管理者ガイド』を参照してください。
ROW ARCHIVAL VISIBILITY
この句を使用すると、セッションに対する行アーカイブの可視性を構成できます。この句によりインデータベース・アーカイブを実装でき、表の行をアクティブまたはアーカイブ済として指定できます。その後、表内のアクティブな行のみを対象に問合せを実行できます。
-
ACTIVE
を指定すると、行アーカイブが有効な表の問合せ実行時にアクティブな行のみが考慮されます。これはデフォルトです。 -
ALL
を指定すると、行アーカイブが有効な表の問合せ実行時にすべての行が考慮されます。
この句は、行アーカイブが無効な表の問合せには影響しません。
関連項目:
-
新しい表の行アーカイブを有効にする方法を学習するには、「
CREATE
TABLE
」の「ROW ARCHIVAL」句を参照してください。 -
既存の表の行アーカイブを有効または無効にする方法を学習するには、「
ALTER
TABLE
」の「[NO] ROW ARCHIVAL」句を参照してください。 -
インデータベース・アーカイブの詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
DEFAULT_COLLATION
この句を使用すると、セッションのデフォルト照合を設定できます。
-
collation_name
を使用して、セッションのデフォルト照合を指定します。有効な名前付き照合または疑似照合の名前を指定できます。この照合は有効スキーマのデフォルト照合になります。この照合は、セッション中に任意のスキーマでそれ以降に作成される表、ビューおよびマテリアライズド・ビューに割り当てられます。セッションのデフォルト照合は、DBリンクを使用して現行のセッションに接続されているリモート・セッションには伝播されません。 -
NONE
を指定した場合は、セッションのデフォルト照合は設定されません。この場合は、特定のスキーマのデフォルト照合がそのスキーマの有効スキーマのデフォルト照合になります。このデフォルト照合は、セッション中にそのスキーマでそれ以降に作成される表、ビューおよびマテリアライズド・ビューに割り当てられます。
前述のいずれの場合も、有効スキーマのデフォルト照合を上書きし、特定の表、マテリアライズド・ビューまたはビューのCREATE
またはALTER
文のDEFAULT
COLLATION
句を指定することで、その表、マテリアライズド・ビューまたはビューにデフォルト照合を割り当てることができます。
有効スキーマのデフォルト照合は、DDL文CREATE
FUNCTION
、CREATE
PACKAGE
、CREATE
PROCEDURE
、CREATE
TRIGGER
およびCREATE
TYPE
にも影響します。これらの文の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
次の文を使用して、セッションのデフォルト照合を問い合せることができます。
SELECT SYS_CONTEXT('USERENV', 'SESSION_DEFAULT_COLLATION') FROM DUAL;
SET
DEFAULT_COLLATION
句を指定できるのは、COMPATIBLE
初期化パラメータが12.2
以上に設定されており、MAX_STRING_SIZE
初期化パラメータがEXTENDED
に設定されている場合のみです。
関連項目:
スキーマのデフォルト照合の詳細は、「CREATE
USER
」の「DEFAULT COLLATION句」を参照してください。
ノート:
セッションの有効スキーマのデフォルト照合を、セッション・パラメータNLS_SORT
と混同しないでください。有効スキーマのデフォルト照合は、表、ビューおよびマテリアライズド・ビューの作成時に、それらのデフォルトのデータ・バインドされた照合を決定するためにDDL文で使用されます。セッション・パラメータNLS_SORT
は、決定された照合がUSING_NLS_COMP
やUSING_NLS_SORT
などの疑似照合であるSQL操作を含む、問合せ、DML文またはPL/SQLコードの実行時に使用される名前付き照合を指定します。詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
初期化パラメータおよびALTER SESSION
初期化パラメータの中には、ALTER
SESSION
の有効範囲内で動的であるものがあります。このようなパラメータをALTER
SESSION
を使用して設定したときに、設定した値が有効であるのは現行セッションの終了までとなります。パラメータをALTER
SESSION
文を使用して変更できるかどうかを調べるには、V$PARAMETER
動的パフォーマンス・ビューのISSES_MODIFIABLE
列を問い合せます。
ノート:
初期化パラメータの値を変更する前に、『Oracle Databaseリファレンス』を参照してください。
ALTER
SESSION
で設定可能な一部のパラメータは、初期化パラメータではありません。初期化パラメータ・ファイルではなく、ALTER
SESSION
でのみ設定可能です。これらのセッション・パラメータの詳細は、「セッション・パラメータおよびALTER SESSION」を参照してください。
セッション・パラメータおよびALTER SESSION
次のパラメータは、セッション・パラメータであり、初期化パラメータではありません。
CONSTRAINT[S]
構文:
CONSTRAINT[S] = { IMMEDIATE | DEFERRED | DEFAULT }
CONSTRAINT[S]
は、遅延可能制約によって指定された条件を、いつ適用するかを指定します。
-
IMMEDIATE
を設定すると、遅延可能な制約によって指定される条件は、各DML文の直後にチェックされます。これは、セッションの各トランザクションの開始時に、SET
CONSTRAINTS
ALL
IMMEDIATE
文を発行することと同じです。 -
DEFERRED
を設定すると、遅延可能な制約によって指定される条件は、トランザクションのコミット時にチェックされます。これは、セッションの各トランザクションの開始時に、SET
CONSTRAINTS
ALL
DEFERRED
文を発行することと同じです。 -
DEFAULT
を設定すると、すべての制約は各トランザクションの開始時に、DEFERRED
またはIMMEDIATE
の初期状態にリストアされます。
CURRENT_SCHEMA
構文:
CURRENT_SCHEMA = schema
CURRENT_SCHEMA
は、セッションの現行のスキーマを、指定したスキーマに変更します。セッション中のスキーマ・オブジェクトに対する後続の未修飾の参照は、この指定したスキーマ内でオブジェクトに変換されます。この設定は、現行のセッションの存続期間中、またはALTER
SESSION
SET
CURRENT_SCHEMA
文を再発行するまで保持されます。
この設定を利用すると、現行のユーザーのものではないスキーマにあるオブジェクトに対する操作を実行するときも、オブジェクトをスキーマ名で修飾することは不要になります。この設定を指定すると、現行スキーマは変更されますが、セッション・ユーザーや現行ユーザーが変更されることはなく、セッションに対する追加のシステム権限やオブジェクト権限がセッション・ユーザーに付与されることもありません。
ERROR_ON_OVERLAP_TIME
構文:
ERROR_ON_OVERLAP_TIME = {TRUE | FALSE}
ERROR_ON_OVERLAP_TIME
パラメータには、Oracle Databaseが不明瞭な境界日時値(日時が標準か夏時間かが明確でない場合)を処理する方法を指定します。
-
TRUE
を指定すると、不明瞭なオーバラップ・タイムスタンプに対してエラーが戻されます。 -
FALSE
を指定すると、不明瞭なオーバラップ・タイムスタンプは標準時刻のデフォルトになります。これはデフォルトです。
境界日時値の詳細は、「夏時間のサポート」を参照してください。
FLAGGER
構文:
FLAGGER = { ENTRY | OFF }
FLAGGER
パラメータは、FIPSのフラグ付け(Federal Information Processing Standard 127-2で規定)を指定するものであり、このフラグを設定すると、SQL-92のエントリ・レベル(正式には、ANSI X3.135-1992。現在、この規格はSQL:2016に置き換えられています)の拡張であるSQL文が発行されたときにエラー・メッセージが生成されます。FLAGGER
はセッション・パラメータであり、初期化パラメータではありません。
セッションでフラグ付けが設定されると、これに続くALTER
SESSION
SET
FLAGGER
文は成功しますが、ORA-00097のメッセージが生成されます。このため、セッションを切断しなくてもFIPSのフラグ付けを変更できます。OFF
を設定した場合、フラグ付けの使用は停止されます。
関連項目:
現行のANSI SQL規格に対するOracleの準拠の詳細は、「Oracleと標準SQL」を参照してください。
Oracle Database 23c以降では、FIPS_140
に関連付けられた複数のパラメータが非推奨になりました。FIPS.ORA
のFIPS_140
を使用すると、Oracle Database 23c以降のすべての機能に対してFIPS
を有効にできます。次のFIPSパラメータが非推奨になりました:
- SQLNET.ORA: ネイティブ・ネットワーク暗号化のためのFIPSを有効にする
FIPS_140
- FIPS.ORA: TLS用のFIPSを有効にする
SSLFIPS_140
- 初期化パラメータ: TDEおよび
DBMS_CRYPTO
用のFIPSを有効にするDBFIPS_140
INSTANCE
構文:
INSTANCE = integer
INSTANCE
パラメータを設定すると、自分のインスタンスに接続している場合と同様に、別のインスタンスにもアクセスできます。INSTANCE
はセッション・パラメータであり、初期化パラメータではありません。Oracle Real Application Clusters(Oracle RAC)環境では、このパラメータの設定に基づき、各Oracle RACインスタンスで、最適なDMLパフォーマンスを実現するようにディスク領域の静的または動的な所有権が保持されます。
ISOLATION_LEVEL
構文:
ISOLATION_LEVEL = {SERIALIZABLE | READ COMMITTED}
ISOLATION_LEVEL
パラメータは、データベースを変更するトランザクションがどのように処理されるかを指定します。ISOLATION_LEVEL
はセッション・パラメータであり、初期化パラメータではありません。
-
SERIALIZABLE
を設定すると、セッション内のトランザクションは、SQL規格に規定されているとおりシリアル化可能トランザクション分離モードを使用します。シリアル化可能トランザクションが行を更新するDML文を実行する場合、現在の更新対象の行がそのシリアル化可能トランザクションの開始時にコミットされていない別のトランザクションによって更新されていたときは、そのDML文は失敗します。シリアル化可能トランザクションは、同一トランザクション内で行った更新を確認できます。 -
READ
COMMITTED
を設定すると、セッション内のトランザクションは、Oracle Databaseトランザクションのデフォルトの動作を行います。別のトランザクションで行ロックを保持しておく必要があるDMLがトランザクションに指定されていると、DML文は行ロックが解除されるまで待ち状態になります。
ノート:
シリアル化可能トランザクションは、遅延セグメント作成または時間隔パーティションでは動作しません。セグメントが作成されていない空の表、またはセグメントが存在しない時間隔パーティション表のパーティションにデータを挿入しようとすると、エラーになります。
STANDBY_MAX_DATA_DELAY
構文:
STANDBY_MAX_DATA_DELAY = { integer | NONE }
Active Data Guard環境では、このセッション・パラメータを設定すると、管理ユーザー以外のユーザーがリアルタイム問合せモードのフィジカル・スタンバイ・データベースに発行した問合せに関して、セッション固有の適用ラグの許容値を秒単位で指定できます。この機能によって、スタンバイ・データベースが許容できないほど失効したかどうかを検出できるため、プライマリ・データベースからフィジカル・スタンバイ・データベースに問合せを安全に移動できます。
STANDBY_MAX_DATA_DELAY
がデフォルト値NONE
に設定されている場合、フィジカル・スタンバイ・データベースに発行された問合せは、そのデータベースの適用ラグに関係なく実行されます。
STANDBY_MAX_DATA_DELAY
を0(ゼロ)以外の値に設定すると、フィジカル・スタンバイ・データベースに発行された問合せは、適用ラグがSTANDBY_MAX_DATA_DELAY
以下の場合のみ実行されます。それ以外の場合、ORA-3172
エラーが戻され、適用ラグが大きすぎることがクライアントに警告されます。
STANDBY_MAX_DATA_DELAY
を0
に設定すると、フィジカル・スタンバイ・データベースに発行された問合せは、プライマリ・データベースに対して発行された場合と同じ結果を戻すことが保証されます。ただし、スタンバイ・データベースがプライマリ・データベースよりも遅れている場合、ORA-3172
エラーが戻されます。
関連項目:
Active Data Guardおよびこのセッション・パラメータの使用方法の詳細は、『Oracle Data Guard概要および管理』を参照してください。
TIME_ZONE
構文:
TIME_ZONE = '[+ | -] hh:mi' | LOCAL | DBTIMEZONE | 'time_zone_region'
TIME_ZONE
パラメータには、現行のSQLセッションのデフォルトのローカル・タイムゾーン・オフセットまたは地域名を指定します。TIME_ZONE
はセッション・パラメータであり、初期化パラメータではありません。現行のセッションのタイムゾーンを確認するには、組込み関数SESSIONTIMEZONE
を問い合せます(「SESSIONTIMEZONE」を参照)。
-
UTCの前または後の時間および分を示す書式マスク(
'[+|-]
hh
:
mi
'
)を指定します。hh:mi
の有効範囲は、-12:00から+14:00です。 -
LOCAL
を指定すると、現行のSQLセッションのデフォルトのローカル・タイムゾーン・オフセットが、現行のSQLセッションを起動したときに構築された、元のデフォルトのローカル・タイムゾーン・オフセットに設定されます。 -
DBTIMEZONE
を指定すると、現行セッションのタイムゾーンはデータベースのタイムゾーンの値と一致するように設定されます。この設定を指定した場合は、DBTIMEZONE
ファンクションによってデータベースのタイムゾーンがUTCオフセットまたはタイムゾーン地域名として戻されるようになりますが、どちらで戻されるかはデータベースのタイムゾーンの設定によって決まります。 -
有効な
time_zone_region
を指定します。有効なタイムゾーン地域名を表示するには、V$TIMEZONE_NAMES
動的パフォーマンス・ビューのTZNAME
列を問い合せます。この設定を指定する場合、SESSIONTIMEZONE
ファンクションは地域の名前を戻します。
ノート:
夏時間機能には、タイムゾーン地域名が必要です。この名前は、大小2つのタイムゾーン・ファイルに格納されます。これらのファイルのうち、使用する環境および使用するOracle Databaseのリリースに応じて、いずれか一方がデフォルトのファイルになります。タイムゾーン・ファイルおよびタイムゾーン名の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
関連項目:
両方のファイル内のすべてのタイムゾーン地域名のリストは、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
ノート:
環境変数ORA_SDTZ
を使用して、クライアント・セッションのデフォルトのタイムゾーンを設定することもできます。この変数の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
USE_PRIVATE_OUTLINES
構文:
USE_PRIVATE_OUTLINES = { TRUE | FALSE | category_name }
USE_PRIVATE_OUTLINES
パラメータを使用すると、プライベート・アウトラインの使用を制御することができます。このパラメータが使用可能で、アウトライン化されたSQL文が発行された場合、オプティマイザは、USE_STORED_OUTLINES
が使用可能なときに使用されるパブリック領域ではなく、そのセッションのプライベート領域からアウトラインを検索します。そのセッションのプライベート領域にアウトラインが存在しない場合、オプティマイザは、文のコンパイルにアウトラインを使用しません。USE_PRIVATE_OUTLINES
は、初期化パラメータではありません。
-
TRUE
に設定すると、要求をコンパイルするときに、オプティマイザはDEFAULT
カテゴリのストアド・プライベート・アウトラインを使用します。 -
FALSE
に設定すると、オプティマイザはストアド・プライベート・アウトラインを使用しません。これはデフォルトです。USE_STORED_OUTLINES
が使用可能な場合、オプティマイザはストアド・パブリック・アウトラインを使用します。 -
category_name
に設定すると、要求をコンパイルするときに、オプティマイザはcategory_name
カテゴリのストアド・アウトラインを使用します。
USE_PRIVATE_OUTLINESの制限事項
USE_STORED_OUTLINES
が有効な場合は、このパラメータを有効化できません。
USE_STORED_OUTLINES
構文:
USE_STORED_OUTLINES = { TRUE | FALSE | category_name }
USE_STORED_OUTLINES
パラメータは、オプティマイザが実行計画を生成するためにストアド・パブリック・アウトラインを使用するかどうかを決定します。USE_STORED_OUTLINES
は、初期化パラメータではありません。
-
TRUE
に設定すると、要求をコンパイルするときに、オプティマイザはDEFAULT
カテゴリのストアド・アウトラインを使用します。 -
FALSE
に設定すると、オプティマイザはストアド・アウトラインを使用しません。これはデフォルトです。 -
category_name
に設定すると、要求をコンパイルするときに、オプティマイザはcategory_name
カテゴリのストアド・アウトラインを使用します。
USED_STORED_OUTLINESの制限事項
USE_PRIVATE_OUTLINES
が有効な場合は、このパラメータを有効化できません。
例
パラレルDMLの有効化: 例
次の文を発行して、現行のセッションでパラレルDMLモードを有効にします。
ALTER SESSION ENABLE PARALLEL DML;
分散トランザクションの強制実行: 例
次のトランザクションは、データベース・リンクremote
によって識別されるデータベース上のemployees
表に従業員のレコードを挿入し、local
によって識別されるデータベース上のemployees
表から従業員のレコードを削除します。
ALTER SESSION ADVISE COMMIT; INSERT INTO employees@remote VALUES (8002, 'Juan', 'Fernandez', 'juanf@example.com', NULL, TO_DATE('04-OCT-1992', 'DD-MON-YYYY'), 'SA_CLERK', 3000, NULL, 121, 20); ALTER SESSION ADVISE ROLLBACK; DELETE FROM employees@local WHERE employee_id = 8002; COMMIT;
このトランザクションには、ADVISE
句を指定したALTER
SESSION
文が2つあります。このトランザクションが状態不明(インダウト)になった場合、remote
には、最初に指定したALTER
SESSION
文によってアドバイス'COMMIT
'が送信され、local
には、2番目の文によってアドバイス'ROLLBACK
'が送信されます。
「データベース・リンクをクローズする: 例」
次の文は、データベース・リンクを使用しているlocal
データベース上のjobs
表を更新し、このトランザクションをコミットして、データベース・リンクを明示的にクローズします。
UPDATE jobs@local SET min_salary = 3000 WHERE job_id = 'SH_CLERK'; COMMIT; ALTER SESSION CLOSE DATABASE LINK local;
日付書式の動的変更: 例
次の文は、セッションのデフォルトの日付形式を動的に'YYYY MM DD-HH24:MI:SS'
に変更します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY MM DD HH24:MI:SS';
変更後は、新しい日付書式が次のように適用されます。
SELECT TO_CHAR(SYSDATE) Today FROM DUAL; TODAY ------------------- 2001 04 12 12:30:38
日付言語の動的変更: 例
次の文は、日付書式要素の言語をフランス語に変更します。
ALTER SESSION SET NLS_DATE_LANGUAGE = French; SELECT TO_CHAR(SYSDATE, 'Day DD Month YYYY') Today FROM DUAL; TODAY --------------------------- Jeudi 12 Avril 2001
ISO通貨の変更: 例
次の文は、ISO通貨記号を、地域がアメリカの場合のISO通貨記号に動的に変更します。
ALTER SESSION SET NLS_ISO_CURRENCY = America; SELECT TO_CHAR( SUM(salary), 'C999G999D99') Total FROM employees; TOTAL ------------------ USD694,900.00
小数点文字および桁区切りの変更: 例
次の文は、小数点文字をカンマ(,)に、桁区切りをピリオド(.)に動的に変更します。
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.' ;
これらの数値書式要素を使用した場合、新しい文字が戻ります。
ALTER SESSION SET NLS_CURRENCY = 'FF'; SELECT TO_CHAR( SUM(salary), 'L999G999D99') Total FROM employees; TOTAL --------------------- FF694.900,00
NLS通貨の変更: 例
次の文は、各国通貨記号をDM
に動的に変更します。
ALTER SESSION SET NLS_CURRENCY = 'DM'; SELECT TO_CHAR( SUM(salary), 'L999G999D99') Total FROM employees; TOTAL --------------------- DM694.900,00
NLS言語の変更: 例
次の文は、エラー・メッセージが表示される言語をフランス語に動的に変更します。
ALTER SESSION SET NLS_LANGUAGE = FRENCH; Session modifiee. SELECT * FROM DMP; ORA-00942: Table ou vue inexistante
言語ソート順の変更: 例
次の文は、言語ソート順をスペイン語に動的に変更します。
ALTER SESSION SET NLS_SORT = XSpanish;
これによって、文字の値はスペイン語のソート順序に基づいてソートされます。
クエリー・リライトの有効化: 例
次の文は、明示的に無効にされていないすべてのマテリアライズド・ビューに対する現行のセッションのクエリー・リライトを有効にします。
ALTER SESSION SET QUERY_REWRITE_ENABLED = TRUE;