Oracle Database SQL言語リファレンス 11g リリース1(11.1) E05750-03 |
|
この章では、次のSQL文について説明します。
マテリアライズド・ビューは、問合せ結果を含むデータベース・オブジェクトです。問合せのFROM
句には、表、ビューおよびその他のマテリアライズド・ビューを指定できます。これらをあわせて、マスター表(レプリケーション用語)またはディテール表(データ・ウェアハウス用語)といいます。このマニュアルでは、マスター表という用語を使用します。マスター表が格納されているデータベースをマスター・データベースといいます。
ALTER
MATERIALIZED
VIEW
文を使用すると、既存のマテリアライズド・ビューを次の方法で変更できます。
参照:
マテリアライズド・ビューを変更するために必要な権限は、次のように直接付与される必要があります。
マテリアライズド・ビューが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER
ANY
MATERIALIZED
VIEW
システム権限が必要です。
クエリー・リライトでマテリアライズド・ビューを使用可能にする場合、次の条件が必要です。
QUERY
REWRITE
権限が必要です。
GLOBAL
QUERY
REWRITE
権限が必要です。
QUERY
REWRITE
権限が必要です。また、マテリアライズド・ビューの所有者は、マテリアライズド・ビュー所有者が所有しないすべてのマスター表へのSELECT
権限を持っている必要があります。
(「ALTER
TABLE
」の項にあるphysical_attributes_clause::=、table_compression::=、LOB_storage_clause::=、modify_LOB_storage_clause::=、alter_table_partitioning::=、parallel_clause::=、logging_clause::=、allocate_extent_clause::=、alter_iot_clauses::=、scoped_table_ref_constraint::=、alter_mv_refresh::=を参照)
(storage_clause::=を参照)
(LOB_storage_parameters::=を参照)
(LOB_parameters::=、storage_clause::=を参照)
(storage_clause::=、logging_clause::=を参照)
(storage_clause::=、LOB_retention_clause::=、LOB_compression_clause::=、logging_clause::=、allocate_extent_clause::=、shrink_clause::=、deallocate_unused_clause::=を参照)
(size_clause::=を参照)
(size_clause::=を参照)
(index_org_table_clause::=、alter_overflow_clause::=を参照。alter_mapping_table_clauses
は、マテリアライズド・ビューではサポートされていません。)
(mapping_table_clause
およびkey_compression
は、マテリアライズド・ビューではサポートされていません。index_org_overflow_clause::=を参照)
(「ALTER
TABLE
」の項にあるsegment_attributes_clause::=を参照)
(allocate_extent_clause::=、shrink_clause::=、deallocate_unused_clause::=を参照)
(「ALTER
TABLE
」の項にあるsegment_attributes_clause::=を参照)
マテリアライズド・ビューが含まれているスキーマを指定します。schema
を指定しない場合、マテリアライズド・ビューは自分のスキーマ内にあるとみなされます。
変更するマテリアライズド・ビューの名前を指定します。
PCTFREE
、PCTUSED
、INITRANS
パラメータの値(USING
INDEX
句で使用する場合は、INITRANS
パラメータ値のみ)、およびマテリアライズド・ビューの記憶特性を指定します。PCTFREE
、PCTUSED
およびINITRANS
パラメータの詳細は、「ALTER TABLE」を参照してください。記憶特性の詳細は、「storage_clause」を参照してください。
table_compression
句を使用すると、ディスクおよびメモリーの使用量を削減するために、データ・セグメントを圧縮するかどうかを指定できます。この句のセマンティクスの詳細は、「CREATE
TABLE
」のtable_compression句を参照してください。
LOB_storage_clause
を使用すると、新しいLOBの記憶特性を指定できます。マテリアライズド・ビューのLOB記憶域は、表の場合と同様に動作します。LOB記憶域パラメータの詳細は、「CREATE
TABLE
」の「LOB_storage_clause」を参照してください。
modify_LOB_storage_clause
を使用すると、LOB属性LOB_item
の物理属性またはLOBオブジェクト属性を変更できます。マテリアライズド・ビューのLOB記憶域の変更は、表の場合と同様に動作します。
マテリアライズド・ビューのalter_table_partitioningの構文および一般的な機能は、パーティション表と同じです。「ALTER
TABLE
」の「alter_table_partitioning」を参照してください。
partitioning_clauses
では、LOB_storage_clause
またはmodify_LOB_storage_clause
を指定できません。
この句を使用すると、partition
に関連付けられたすべてのローカル索引パーティションに、UNUSABLE
のマークが付きます。
この句を使用すると、partition
に関連付けられた、使用禁止のローカル索引パーティションを再構築できます。
parallel_clause
を使用すると、マテリアライズド・ビューのデフォルトの並列度を変更できます。
この句の詳細は、「CREATE
TABLE
」の「parallel_clause」を参照してください。
この句を使用すると、マテリアライズド・ビューのロギング特性を指定または変更できます。この句の詳細は、「logging_clause」を参照してください。
allocate_extent_clause
を使用すると、マテリアライズド・ビューの新しいエクステントを明示的に割り当てることができます。この句の詳細は、「allocate_extent_clause」を参照してください。
この句を使用すると、マテリアライズド・ビューのセグメントを縮小化できます。この句の詳細は、「CREATE
TABLE
」の「shrink_clause」を参照してください。
アクセス頻度の高いデータについて、CACHE
は、全表スキャンの実行時にこの表に対して取り出された各ブロックを、バッファ・キャッシュのLRUリストの最高使用頻度側に入れることを指定します。この属性は、小規模な参照表で有効です。NOCACHE
は、ブロックをLRUリストの最低使用頻度側に入れることを指定します。この句の詳細は、「CREATE
TABLE
」の「CACHE | NOCACHE | CACHE READS」を参照してください。
alter_iot_clauses
を使用すると、索引構成マテリアライズド・ビューの特性を変更できます。alter_iot_clauses
コンポーネントのキーワードおよびパラメータは、ALTER
TABLE
と同じです。また、次の制限事項があります。
index_org_table_clause
のmapping_table_clauses
またはkey_compression
句は指定できません。
この句を使用すると、マテリアライズド・ビューのデータをメンテナンスするために使用される索引のINITRANS
パラメータおよびSTORAGE
パラメータの値を変更できます。
この句では、PCTUSED
またはPCTFREE
パラメータは指定できません。
MODIFY
scoped_table_ref_constraint
句を使用すると、新しい表または新しい列の別名にREF
列または属性の有効範囲を再指定できます。
ALTER
MATERIALIZED
VIEW
文では、1つのREF
列または属性の有効範囲のみを再指定することができます。この句は、この文以外では使用できません。
alter_mv_refresh
句を使用すると、自動リフレッシュの方法、モードおよび日時のデフォルト値を変更できます。マテリアライズド・ビューのマスター表の内容が変更された場合、マテリアライズド・ビューのデータを更新し、現在マスター表にあるデータを正確に反映させる必要があります。この句によって、自動的にマテリアライズド・ビューをリフレッシュする日時をスケジューリングし、リフレッシュの方法およびモードを指定できます。
FAST
を指定すると、増分リフレッシュ方法を指定できます。これはマスター表に対して行った変更に従ってリフレッシュを行います。この変更は、マスター表に関連付けられたマテリアライズド・ビュー・ログ(従来型DML変更の場合)またはダイレクト・ローダー・ログ(ダイレクト・パス・インサート操作の場合)に格納されます。
従来型DMLの変更の場合も、ダイレクト・パス・インサート操作の場合も、他の条件によって、高速リフレッシュへのマテリアライズド・ビューの適応性が制限されることがあります。
参照:
|
FAST
リフレッシュには、次の制限事項があります。
FAST
リフレッシュを指定した場合、作成するマテリアライズド・ビューは高速リフレッシュに適応することが検証されています。ALTER
MATERIALIZED
VIEW
文でリフレッシュ方法をFAST
に変更した場合、これは検証されていません。マテリアライズド・ビューが高速リフレッシュに適応しない場合、このビューをリフレッシュしようとするとエラーが戻されます。
COMPLETE
を指定すると、完全リフレッシュ方法を指定できます。これは、マテリアライズド・ビューを定義する問合せを実行することによって実装されます。完全リフレッシュを指定すると、高速リフレッシュが実行可能であっても、完全リフレッシュが実行されます。
FORCE
を指定すると、リフレッシュ時に、高速リフレッシュが可能な場合は高速リフレッシュを実行し、そうでない場合は完全リフレッシュを実行できます。
ON
COMMIT
を指定すると、マテリアライズド・ビューのマスター表に対するトランザクションをコミットするときに必ず高速リフレッシュが実行されます。
この句は、マテリアライズド結合ビューおよびマテリアライズド集計ビューにのみサポートされます。
ON
DEMAND
を指定すると、マテリアライズド・ビューは、3つのDBMS_MVIEW
リフレッシュ・プロシージャのいずれかのコールによる要求でリフレッシュされます。ON
COMMIT
およびON
DEMAND
のどちらも指定しなかった場合、ON
DEMAND
がデフォルトになります。
ON
COMMIT
またはON
DEMAND
を指定した場合、START
WITH
またはNEXT
を同時に指定できません。
START
WITH
date
を指定すると、最初の自動リフレッシュ時間を表す日付を指定できます。
NEXT
を指定すると、自動リフレッシュの間隔を計算するための日付式を指定できます。
START
WITH
値およびNEXT
値は、将来の時刻に評価される値です。START
WITH
値を省略した場合、Oracle Databaseはマテリアライズド・ビューの作成時刻に対してNEXT
式を評価することによって、最初の自動リフレッシュ時刻を判断します。START
WITH
値を指定し、NEXT
値を指定しない場合、Oracle Databaseは1回のみマテリアライズド・ビューをリフレッシュします。START
WITH
値およびNEXT
値のどちらも指定しない場合、またはalter_mv_refresh
を指定しない場合、Oracle Databaseはマテリアライズド・ビューを自動リフレッシュしません。
WITH
PRIMARY
KEY
を指定すると、ROWIDマテリアライズド・ビューを主キー・マテリアライズド・ビューに変更できます。主キー・マテリアライズド・ビューを使用すると、高速リフレッシュを継続できるマテリアライズド・ビューの機能に影響せずに、マテリアライズド・ビュー・マスター表を再編成できます。
この句を指定するには、マスター表に、使用可能な主キー制約が定義され、この制約に基づき、主キー情報を記録するマテリアライズド・ビュー・ログが定義されている必要があります。
自動UNDOモードでは、ロールバック・セグメントではなくUNDO表領域が使用されるため、データベースが自動UNDOモードの場合、この句は無効です。自動UNDOモードを使用することをお薦めします。この句は、ロールバック・セグメントが使用される以前のバージョンのOracle Databaseが含まれるレプリケーション環境との下位互換性のためにサポートされています。
この句の詳細は、「CREATE
MATERIALIZED
VIEW
」の「USING ROLLBACK SEGMENT句」を参照してください。
この句のセマンティクスは、CREATE
MATERIALIZED
VIEW
およびALTER
MATERIALIZED
VIEW
文で同じです。この句の詳細は、「CREATE
MATERIALIZED
VIEW
」の「USING ...CONSTRAINTS句」を参照してください。
この句を使用すると、マテリアライズド・ビューをクエリー・リライトで使用できるかどうかを指定できます。
ENABLE
を指定すると、クエリー・リライトでマテリアライズド・ビューを使用可能にできます。
マテリアライズド・ビューを使用可能にする処理には、次の制限事項があります。
ENABLE
モードでもクエリー・リライトに適応しません。
DETERMINISTIC
である場合のみ、クエリー・リライトを使用可能にできます。CURRENT_TIME
またはUSER
を含めることはできません。DISABLE
を指定すると、クエリー・リライトでマテリアライズド・ビューを使用禁止にできます。マテリアライズド・ビューが無効な場合、使用禁止であるかどうかにかかわらず、クエリー・リライトの使用には適応しません。ただし、使用禁止にされたマテリアライズド・ビューをリフレッシュすることはできます。
COMPILE
を指定すると、マテリアライズド・ビューを明示的に再検証できます。マテリアライズド・ビューが依存するオブジェクトを削除または変更した場合、マテリアライズド・ビューはアクセス可能のままですが、クエリー・リライトに対しては無効です。再度、明示的にマテリアライズド・ビューの妥当性チェックを行い、クエリー・リライトの使用に適応させるには、この句を使用します。
マテリアライズド・ビューの再妥当性チェックに失敗すると、リフレッシュできなくなるか、またはクエリー・リライトに使用できなくなります。
この句を使用すると、マスター表が変更された後のマテリアライズド・ビューの失効状態を管理することができます。CONSIDER
FRESH
は、マテリアライズド・ビューが最新であり、TRUSTED
またはSTALE_TOLERATED
モードでのクエリー・リライトに適応するとみなされるように指定します。Oracle Databaseは、マテリアライズド・ビューが最新であるかどうかを保証できないため、ENFORCED
モードでのクエリー・リライトはサポートしません。また、この句はマテリアライズド・ビューの失効状態をUNKNOWN
に設定します。失効状態は、ALL_MVIEWS
、DBA_MVIEWS
およびUSER_MVIEWS
の各データ・ディクショナリ・ビューのSTALENESS
列に表示されます。
いずれかのマスター表の内容が変更された場合、マテリアライズド・ビューは失効します。この句は、Oracle Databaseに対して、マテリアライズド・ビューが最新で、変更されていないものと仮定するように指示します。そのため、リフレッシュが保留されているこれらの表に対する実際の更新内容は、マテリアライズド・ビューから削除されます。
参照:
|
次の文は、マテリアライズド・ビューsales_by_month_by_state
(「マテリアライズド集計ビューの作成例:」で作成)のリフレッシュ方法のデフォルトをFAST
に変更します。
ALTER MATERIALIZED VIEW sales_by_month_by_state REFRESH FAST;
これ以降のマテリアライズド・ビューの自動リフレッシュは、高速リフレッシュになります。これは、単純なマテリアライズド・ビューであり、そのマスター表には、マテリアライズド・ビューの作成前または最後のリフレッシュ前に作成されたマテリアライズド・ビュー・ログがあります。
REFRESH
句にSTART
WITH
またはNEXT
の値が指定されていないため、マテリアライズド・ビューsales_by_month_by_state
を作成したとき、または最後に変更したときにREFRESH
句で設定されたリフレッシュ間隔がそのまま使用されます。
次の文は、マテリアライズド・ビューsales_by_month_by_state
の新しい自動リフレッシュ間隔を設定します。
ALTER MATERIALIZED VIEW sales_by_month_by_state REFRESH NEXT SYSDATE+7;
REFRESH
にSTART
WITH
の値が指定されていないため、マテリアライズド・ビューsales_by_month_by_state
が作成されたとき、または最後に変更されたときに指定されたSTART
WITH
とNEXT
の値によって設定された日時に次の自動リフレッシュが行われます。
このマテリアライズド・ビューは、次に自動リフレッシュが行われる際に、リフレッシュされます。次に自動リフレッシュが行われる日時は、NEXT
に設定した式SYSDATE
+7が計算されて決まります。その後は、週に1回リフレッシュが自動的に行われます。REFRESH
句にリフレッシュ方法が明示的に指定されていないため、CREATE
MATERIALIZED
VIEW
文または直前のALTER
MATERIALIZED
VIEW
文のREFRESH
句で指定されたリフレッシュ方法が引き続き使用されます。
次の文は、Oracle Databaseがマテリアライズド・ビューsales_by_month_by_state
を最新であるとみなすように指定します。この文を使用すると、sales_by_month_by_state
のマスター表に対してパーティション・メンテナンス操作を実行した後でも、sales_by_month_by_state
に対してTRUSTED
モードでのクエリー・リライトが可能です。
ALTER MATERIALIZED VIEW sales_by_month_by_state CONSIDER FRESH;
次の文は、マテリアライズド・ビューemp_data
(「マテリアライズド・ビューの定期的リフレッシュ例:」で作成)の新しいリフレッシュ方法、NEXT
で示す新しいリフレッシュ日時および新しい自動リフレッシュ間隔を指定します。
ALTER MATERIALIZED VIEW emp_data REFRESH COMPLETE START WITH TRUNC(SYSDATE+1) + 9/24 NEXT SYSDATE+7;
START
WITH
句に指定した値によって、このマテリアライズド・ビューの次の自動リフレッシュは翌日の午前9時に発生するように設定されます。この日時にマテリアライズド・ビューの完全リフレッシュが実行され、NEXT
に設定した式が計算されます。その後は、このマテリアライズド・ビューは毎週リフレッシュされます。
次の文は、マテリアライズド・ビューemp_data
のクエリー・リライトを使用可能にし、暗黙的に再妥当性チェックを行います。
ALTER MATERIALIZED VIEW emp_data ENABLE QUERY REWRITE;
次の文は、ROWIDマテリアライズド・ビューorder_data
(「ROWIDマテリアライズド・ビューの作成例:」で作成)を主キー・マテリアライズド・ビューに変更します。この例では、order_data
に主キーを持つマテリアライズド・ビュー・ログを定義していることが必要です。
ALTER MATERIALIZED VIEW order_data REFRESH WITH PRIMARY KEY;
次の文は、マテリアライズド・ビューstore_mv
を再検証します。
ALTER MATERIALIZED VIEW order_data COMPILE;
マテリアライズド・ビュー・ログとは、マテリアライズド・ビューのマスター表に関連付けられる表です。ALTER
MATERIALIZED
VIEW
LOG
文を使用すると、既存のマテリアライズド・ビュー・ログの記憶特性またはタイプを変更できます。
参照:
|
マスター表の所有者であるか、またはマスター表に対するSELECT
権限およびマテリアライズド・ビュー・ログに対するALTER
権限が必要です。
(physical_attributes_clause::=、alter_table_partitioning::=(「ALTER
TABLE
」の項)、parallel_clause::=、logging_clause::=、allocate_extent_clause::=およびnew_values_clause::=を参照)
(storage_clause::=を参照)
(size_clause::=を参照)
FORCE
を指定すると、ADD
句で指定したいずれかの項目がすでにマテリアライズド・ビュー・ログに指定されている場合、エラーは戻されませんが、既存の要素は無視され、マテリアライズド・ビュー・ログに存在しないすべての項目が追加されます。同様に、INCLUDING
NEW
VALUES
を指定すると、この属性がすでにマテリアライズド・ビュー・ログに指定されている場合、冗長は無視され、エラーも戻されません。
マスター表が定義されているスキーマを指定します。schema
を指定しない場合、マテリアライズド・ビュー・ログは自分のスキーマ内にあるとみなされます。
変更するマテリアライズド・ビュー・ログに関連付けられたマスター表の名前を指定します。
physical_attributes_clause
を使用すると、PCTFREE
、PCTUSED
およびINITRANS
の各パラメータの値、マテリアライズド・ビュー・ログ、パーティションおよびオーバーフロー・データ・セグメントの記憶特性、またはパーティション・マテリアライズド・ビュー・ログのデフォルト特性を変更できます。
マテリアライズド・ビュー・ログがローカル管理表領域に存在する場合は、storage_clause
を使用して、エクステント・パラメータを変更することはできません。このパラメータについては、「CREATE TABLE」を参照してください。
alter_table_partitioningの構文および一般的な機能は、ALTER
TABLE
文の場合と同じです。「ALTER
TABLE
」の「alter_table_partitioning」を参照してください。
マテリアライズド・ビュー・ログのパーティションの変更には、次の制限事項があります。
LOB_storage_clause
またはmodify_LOB_storage_clause
は使用できません。
parallel_clause
を使用すると、マテリアライズド・ビュー・ログへのパラレル操作がサポートされているかどうかを指定できます。
この句の詳細は、「CREATE
TABLE
」の「parallel_clause」を参照してください。
マテリアライズド・ビュー・ログに対するロギング属性を指定します。この句の詳細は、「logging_clause」を参照してください。
allocate_extent_clause
を使用すると、マテリアライズド・ビュー・ログの新しいエクステントを明示的に割り当てることができます。この句の詳細は、「allocate_extent_clause」を参照してください。
この句を使用すると、マテリアライズド・ビュー・ログのセグメントを縮小化できます。この句の詳細は、「CREATE
TABLE
」の「shrink_clause」を参照してください。
アクセス頻度が高いデータについて、CACHE
は、全表スキャンの実行時にこのログ用に取り出された各ブロックを、バッファ・キャッシュ内のLRUリストの最高使用頻度側に入れることを指定します。この属性は、小規模な参照表で有効です。NOCACHE
は、ブロックをLRUリストの最低使用頻度側に入れることを指定します。この句の詳細は、「CREATE
TABLE
」の「CACHE | NOCACHE | CACHE READS」を参照してください。
ADD
句を使用すると、マテリアライズド・ビュー・マスター表内の行が変更される際に、主キー値、ROWID値、オブジェクトID値または順序も記録できるようにマテリアライズド・ビュー・ログを拡張できます。また、この句は、新しく列を記録するためにも使用できます。
これらの情報の記録を停止する場合は、マテリアライズド・ビュー・ログを削除してから、再作成する必要があります。マテリアライズド・ビュー・ログを削除した後再作成した場合、マスター表に依存するすべての既存マテリアライズド・ビューが、次回のリフレッシュ時に強制的に完全リフレッシュされます。
各マテリアライズド・ビュー・ログに指定できるのは、PRIMARY
KEY
、ROWID
、OBJECT
ID
、SEQUENCE
および列リストの列を1つずつです。このALTER
文にPRIMARY
KEY
、ROWID
、OBJECT
ID
、SEQUENCE
および列リストを指定できるのはそれぞれ1回のみです。また、FORCE
オプションを指定しないかぎり、これらの値のいずれかが作成時に(暗黙的または明示的に)指定された場合、このALTER
文にはそれらの値を指定できません。
OBJECT
ID
を指定すると、更新されるすべての行の適切なオブジェクト識別子をマテリアライズド・ビュー・ログに記録できます。
OBJECT
ID
は、オブジェクト表のログ用のみに指定でき、記憶表用には指定できません。
PRIMARY
KEY
を指定すると、更新されるすべての行の主キーをマテリアライズド・ビュー・ログに記録できます。
ROWID
を指定すると、更新されるすべての行のROWID値をマテリアライズド・ビュー・ログに記録できます。
SEQUENCE
を指定すると、追加の順序情報を提供する順序値をマテリアライズド・ビュー・ログに記録できます。
更新されるすべての行に対して、マテリアライズド・ビュー・ログに記録する値を持つ新しい列を指定します。通常、フィルタ列(副問合せマテリアライズド・ビューが参照する主キー以外の列)および結合列(副問合せのWHERE
句で結合を定義する主キー以外の列)を指定します。
参照:
|
NEW
VALUES
句を使用すると、更新DML操作で、古い値と新しい値の両方をマテリアライズド・ビュー・ログに保存するかどうかを指定できます。ALTER
MATERIALIZED
VIEW
LOG
文で追加した列のみでなく、ログのすべての列にこの句で設定した値を適用します。
INCLUDING
を指定すると、古い値と新しい値の両方を保存できます。このログが単一表マテリアライズド集計ビューの表用で、マテリアライズド・ビューに高速リフレッシュを実行する場合、INCLUDING
を指定してください。
EXCLUDING
を指定すると、ログに新しい値が記録されなくなります。この句を使用すると、新しい値の記録によるオーバーヘッドを回避できます。
マテリアライズド・ビューのリフレッシュ・モードをFAST
以外のモードに変更した場合を除き、高速リフレッシュが可能な単一表マテリアライズド集計ビューが定義されている場合は、EXCLUDING
NEW
VALUES
を使用しないでください。
次の文は、ROWID情報も記録するように既存の主キー・マテリアライズド・ビュー・ログを変更します。
ALTER MATERIALIZED VIEW LOG ON order_items ADD ROWID;
次の文は、フィルタ列を追加し、新しい値を除外することで、hr.employees
のマテリアライズド・ビュー・ログを変更します。このログを使用するマテリアライズド集計ビューは、これ以降高速リフレッシュされません。ただし、高速リフレッシュが不要になる場合は、この処理によって新しい値の記録によるオーバーヘッドを回避できます。
ALTER MATERIALIZED VIEW LOG ON employees ADD (commission_pct) EXCLUDING NEW VALUES;
ALTER
OPERATOR
文を使用すると、既存の演算子に対するバインドを追加または削除したり、既存の演算子をコンパイルすることができます。
事前にCREATE
OPERATOR
文によって演算子が作成されている必要があります。演算子が自分のスキーマ内にあるか、またはALTER
ANY
OPERATOR
システム権限が必要です。ALTER
OPERATOR
文で参照される演算子およびファンクションに対するEXECUTE
オブジェクト権限が必要です。
(add_binding_clause::=、drop_binding_clause::=を参照)
(implementation_clause::=、using_function_clause::=を参照)
(context_clause::=を参照)
演算子が含まれているスキーマを指定します。この句を指定しない場合、その演算子は自分のスキーマにあるとみなされます。
変更する演算子の名前を指定します。
この句を使用すると、演算子バインドを追加し、パラメータ・データ型および戻り型を指定できます。この演算子の既存のバインドと異なる署名を使用する必要があります。
演算子のバインドが索引タイプに関連付けられており、演算子に別のバインドを追加する場合、Oracle Databaseは新しいバインドと索引タイプの関連付けを自動的に行いません。関連付けを行うには、明示的なALTER
INDEXTYPE
...ADD
OPERATOR
文を発行する必要があります。
この句のセマンティクスは、CREATE
OPERATOR
およびALTER
OPERATOR
文で同じです。この句の詳細は、「CREATE
OPERATOR
」の「implementation_clause」を参照してください。
この句のセマンティクスは、CREATE
OPERATOR
およびALTER
OPERATOR
文で同じです。この句の詳細は、「CREATE
OPERATOR
」の「context_clause」を参照してください。
この句のセマンティクスは、CREATE
OPERATOR
およびALTER
OPERATOR
文で同じです。この句の詳細は、「CREATE
OPERATOR
」の「using_function_clause」を参照してください。
この句を使用すると、演算子から削除するバインドのパラメータ・データ型のリストを指定できます。バインドに索引タイプや補助演算子バインドなどの依存オブジェクトが含まれる場合、FORCE
を指定する必要があります。FORCE
を指定すると、そのバインドに依存するすべてのオブジェクトにINVALID
のマークが付きます。依存オブジェクトは、DDL文、DML文または問合せで次に参照された際に再検証されます。
この句を使用して、この演算子に関連付けられた唯一のバインドを削除することはできません。この演算子に関連付けられた唯一のバインドを削除するには、DROP
OPERATOR
文を使用する必要があります。詳細は、「DROP OPERATOR」を参照してください。
COMPILE
を指定すると、演算子を再コンパイルできます。
次の例は、演算子eq_op
(「ユーザー定義演算子の作成例:」で作成)をコンパイルします。
ALTER OPERATOR eq_op COMPILE;
ALTER
OUTLINE
文を使用すると、ストアド・アウトラインの名前を変更したり、ストアド・アウトラインを異なるカテゴリに再度割り当てることができます。また、アウトラインのSQL文をコンパイルし、古いアウトライン・データを現行の条件で作成したアウトラインと置き換えて、ストアド・アウトラインを再生成できます。
アウトラインを変更する場合は、ALTER
ANY
OUTLINE
システム権限が必要です。
PUBLIC
を指定すると、アウトラインのパブリック・バージョンを変更できます。これはデフォルトです。
PRIVATE
を指定すると、現行のセッションに対してプライベートで、現行の解析スキーマにデータが格納されているアウトラインを変更できます。
変更するアウトラインの名前を指定します。
REBUILD
を指定すると、現行の条件で、outline
の実行計画が再生成されます。
RENAME
TO
句を使用すると、outline
の値と置き換えるアウトライン名を指定できます。
CHANGE
CATEGORY
TO
句を使用すると、outline
の移動先となるカテゴリ名を指定できます。
この句を使用すると、このアウトラインを選択的に使用可能または使用禁止にできます。デフォルトでは、アウトラインは使用可能になっています。DISABLE
キーワードを使用すると、他のアウトラインの使用に影響を与えずに、1つのアウトラインを使用禁止にできます。
次の文は、アウトラインのテキストをコンパイルし、古いアウトライン・データを現行の条件で作成したアウトラインと置き換えて、salaries
というストアド・アウトラインを再生成します。
ALTER OUTLINE salaries REBUILD;
パッケージはPL/SQLを使用して定義されます。このため、この項では一般的な情報について説明します。構文およびセマンティクスの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
ALTER
PACKAGE
文を使用すると、パッケージ仕様部またはパッケージ本体(あるいはその両方)を明示的に再コンパイルできます。明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドもなくなります。
パッケージ中のすべてのオブジェクトは、1つの単位として格納されているため、ALTER
PACKAGE
文によって、すべてのパッケージ・オブジェクトがまとめて再コンパイルされます。ALTER
PROCEDURE
文またはALTER
FUNCTION
文を使用して、パッケージ中の一部のプロシージャまたはファンクションを再コンパイルすることはできません。
注意:
この文を使用して、既存のパッケージの宣言や定義を変更することはできません。パッケージを再宣言または再定義する場合は、「CREATE PACKAGE」または「CREATE PACKAGE BODY」に |
パッケージを変更するには、パッケージが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER
ANY
PROCEDURE
システム権限が必要です。
(package_compile_clause
: この句の構文の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。)
パッケージが含まれているスキーマを指定します。schema
を指定しない場合、パッケージは自分のスキーマ内にあるとみなされます。
再コンパイルするパッケージの名前を指定します。
この句の構文とセマンティクスの詳細およびパッケージの作成とコンパイルの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
パッケージはPL/SQLを使用して定義されます。このため、この項では一般的な情報について説明します。構文およびセマンティクスの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
ALTER
PROCEDURE
文を使用すると、スタンドアロンのストアド・プロシージャを明示的に再コンパイルできます。明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドもなくなります。
パッケージの一部であるプロシージャを再コンパイルする場合、ALTER
PACKAGE
文を使用して、そのパッケージ全体を再コンパイルします(「ALTER PACKAGE」を参照)。
注意:
この文を使用して、既存のプロシージャの宣言または定義を変更することはできません。プロシージャを再宣言または再定義する場合は、 |
ALTER
PROCEDURE
文は、ALTER
FUNCTION
文と似ています。詳細は、「ALTER FUNCTION」を参照してください。
プロシージャは、自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER
ANY
PROCEDURE
システム権限が必要です。
(procedure_compile_clause
: この句の構文の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。)
プロシージャが含まれているスキーマを指定します。schema
を指定しない場合、プロシージャは自分のスキーマ内にあるとみなされます。
再コンパイルするプロシージャの名前を指定します。
この句の構文とセマンティクスの詳細およびプロシージャの作成とコンパイルの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
ALTER
PROFILE
文を使用すると、プロファイルのリソース制限またはパスワード管理パラメータを追加、変更または削除できます。
ALTER
PROFILE
文を使用すると、プロファイルに対して行った変更は、このプロファイルの現行のセッションのユーザーには影響しません。後続セッションのユーザーのみに影響します。
プロファイルのリソース制限を変更する場合は、ALTER
PROFILE
システム権限が必要です。パスワード制限および保護を変更する場合は、ALTER
PROFILE
およびALTER
USER
システム権限が必要です。
(resource_parameters::=、password_parameters::=を参照)
(size_clause::=を参照)
ALTER
PROFILE
文のキーワード、パラメータおよび句の意味は、すべてCREATE
PROFILE
文のキーワード、パラメータおよび句と同じです。
DEFAULT
プロファイルから制限を削除することはできません。
詳細は、「CREATE PROFILE」および次の例を参照してください。
次の文は、new_profile
プロファイル(「プロファイルの作成例:」で作成)のパスワードを90日間再利用できないようにします。
ALTER PROFILE new_profile LIMIT PASSWORD_REUSE_TIME 90 PASSWORD_REUSE_MAX UNLIMITED;
次の文は、app_user
プロファイル(「プロファイルのリソース制限の設定の例:」で作成)のPASSWORD_REUSE_TIME
値をDEFAULT
プロファイルに定義された値にデフォルト設定します。
ALTER PROFILE app_user LIMIT PASSWORD_REUSE_TIME DEFAULT PASSWORD_REUSE_MAX UNLIMITED;
次の文は、プロファイルapp_user
のFAILED_LOGIN_ATTEMPTS
を5に、PASSWORD_LOCK_TIME
を1に変更します。
ALTER PROFILE app_user LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1;
この文を使用すると、ログインに5回失敗した場合に、app_user
のアカウントは1日ロックされます。
次の文は、プロファイルapp_user2
のPASSWORD_LIFE_TIME
を90日に、PASSWORD_GRACE_TIME
を5日に変更します。
ALTER PROFILE app_user2 LIMIT PASSWORD_LIFE_TIME 90 PASSWORD_GRACE_TIME 5;
次の文は、プロファイルapp_user
に同時実行セッションの新しい制限5を指定します。
ALTER PROFILE app_user LIMIT SESSIONS_PER_USER 5;
現在、プロファイルapp_user
にSESSIONS_PER_USER
の制限が定義されていない場合は、このプロファイルに制限5が追加されます。プロファイルに制限が定義されている場合は、前述の文によってその制限が5に再定義されます。プロファイルapp_user
が割り当てられているすべてのユーザーは、同時実行のセッションが5件に制限されます。
次の文は、プロファイルapp_user
のIDLE_TIME
制限を削除します。
ALTER PROFILE app_user LIMIT IDLE_TIME DEFAULT;
プロファイルapp_user
が割り当てられているユーザーは、以降のセッションからプロファイルDEFAULT
に定義されたIDLE_TIME
制限に従います。
次の文は、プロファイルDEFAULT
にアイドル時間の制限(2分)を定義します。
ALTER PROFILE default LIMIT IDLE_TIME 2;
IDLE_TIME
の制限は、次のユーザーに適用されます。
次の文は、プロファイルapp_user2
に無制限のアイドル時間を設定します。
ALTER PROFILE app_user2 LIMIT IDLE_TIME UNLIMITED;
プロファイルapp_user2
が割り当てられているすべてのユーザーは、以降のセッションから無制限のアイドル時間が許可されます。
ALTER
RESOURCE
COST
文を使用すると、セッションで使用するリソース・コストの合計を算出するための式を指定または変更できます。
Oracle Databaseは、その他のリソースの使用も監視しますが、セッションに対するリソース・コストの合計は、この構文の4種類のリソースに基づいて算出されます。
この文を使用すると、4種類のリソースに重みを適用できます。Oracle Databaseは、プロファイルに指定されたこれらのリソースの値に重みを適用し、リソース・コストの合計を算出する計算式を設定します。CREATE
PROFILE
文のCOMPOSITE_LIMIT
パラメータを使用して、セッションに対するコストを制限できます。セッションのリソース・コストが制限を超えた場合、セッションは異常終了し、エラーが戻ります。各リソースに割り当てた重みを変更するためにALTER
RESOURCE
COST
文を使用した場合、現行のセッション以降のすべてのセッションで、その新しい重みを基にリソース・コストが計算されます。
ALTER
RESOURCE
COST
システム権限が必要です。
最初にセッションで使用された各リソースの量にそのリソースの重みを乗算し、次に、4種類のリソースの乗算結果を加算することによって、リソース・コストの合計が計算されます。どのセッションについても、このコストは、ユーザーのプロファイル内のCOMPOSITE_LIMIT
パラメータの値によって制限されます。乗算結果と総コストは、ともにサービス単位と呼ばれる単位で表されます。
このキーワードを使用すると、CPU_PER_SESSION
リソースに重みを適用できます。
このキーワードを使用すると、CONNECT_TIME
リソースに重みを適用できます。
この句を使用すると、LOGICAL_READS_PER_SESSION
リソースに重みを適用できます。論理読取りには、メモリーおよびディスクの両方から読み取られたブロックが含まれます。
この句を使用すると、PRIVATE_SGA
リソースに重みを適用できます。共有サーバー・アーキテクチャを使用して、セッション用としてSGA内でプライベート領域を割り当てている場合のみ、この制限が適用されます。
各リソースの重みを指定します。各リソースに割り当てる重みによって、各リソースがリソース・コストの合計に影響する程度が決定されます。リソースに重みを割り当てない場合は、デフォルト値の0(ゼロ)が適用され、コストへの影響はありません。重みを割り当てた場合は、データベースの次のセッション以降のすべてのセッションで、その重みが適用されます。
次の文は、リソースCPU_PER_SESSION
とCONNECT_TIME
に重みを割り当てます。
ALTER RESOURCE COST CPU_PER_SESSION 100 CONNECT_TIME 1;
この重みによって、セッションごとに次のコスト計算式が設定されます。
cost = (100 * CPU_PER_SESSION) + (1 * CONNECT_TIME)
この例では、CPU_PER_SESSION
およびCONNECT_TIME
の値は、DEFAULT
プロファイルまたはセッションのユーザーのプロファイルにある値のいずれかです。
ここでは、リソースLOGICAL_READS_PER_SESSION
およびPRIVATE_SGA
に重みを割り当てていないため、これらのリソースは式に含まれません。
プロファイルでCOMPOSITE_LIMIT
値として500を割り当てた場合、cost
が500を超えると、必ず、セッションはこの制限を超えます。たとえば、CPU時間0.04秒、経過時間101分を使用するセッションは、この制限を超えます。同様に、CPU時間が0.0301秒、経過時間が200分のセッションもこの制限を超えます。
一度割り当てた重みは、次のように、別のALTER
RESOURCE
文を発行することによって変更できます。
ALTER RESOURCE COST LOGICAL_READS_PER_SESSION 2 CONNECT_TIME 0;
新しく割り当てた重みによって、新しいコスト計算式が設定されます。
cost = (100 * CPU_PER_SESSION) + (2 * LOGICAL_READ_PER_SECOND)
CPU_PER_SESSION
およびLOGICAL_READS_PER_SECOND
の値は、DEFAULT
プロファイルまたはセッションのユーザーのプロファイルにある値のいずれかです。
このALTER
RESOURCE
COST
文によって、式は次のように変更されます。
CPU_PER_SESSION
リソースの重みは指定しません。このリソースにはすでに重みが割り当てられているため、式では先に指定した重みがそのまま使用されます。
LOGICAL_READS_PER_SESSION
リソースに重みを割り当てたため、このリソースが式で使用されます。
CONNECT_TIME
リソースに0(ゼロ)を割り当てたため、このリソースは式に含まれていません。
PRIVATE_SGA
リソースの重みは指定しません。このリソースには重みを割り当てていないため、式に含まれていません。
ALTER
ROLE
文を使用すると、ロールを使用可能にするために必要な許可を変更できます。
ロールにADMIN
OPTION
が付与されている必要があります。付与されていない場合は、ALTER
ANY
ROLE
システム権限が必要です。
ロールをIDENTIFIED
GLOBALLY
に変更する前に、次の作業が必要です。
この規則の唯一の例外として、現在ロールを変更しているユーザーからはそのロールを取り消さないでください。
ALTER
ROLE
文のキーワード、パラメータおよび句の意味は、すべてCREATE
ROLE
文のキーワード、パラメータおよび句と同じです。
ロールの変更には、次の注意事項があります。
USING
package
句を使用)、ロールに対応付けられたパスワード情報は失われます。次にロールが使用可能になるときから、新しい認証方式が使用されます。
ALTER
ANY
ROLE
システム権限を持つユーザーが、IDENTIFIED
GLOBALLY
ロールをIDENTIFIED
BY
password
、IDENTIFIED
EXTERNALLY
またはNOT
IDENTIFIED
に変更すると、非グローバルなロールを作成した場合と同様に、そのユーザーに変更されたロールがADMIN
OPTION
付きで付与されます。
詳細は、「CREATE ROLE」および次の例を参照してください。
次の文は、ロールwarehouse_user
(「ロールの作成例:」で作成)をNOT
IDENTIFIED
に変更します。
ALTER ROLE warehouse_user NOT IDENTIFIED;
次の文は、ロールdw_manager
(「ロールの作成例:」で作成)のパスワードをdata
に変更します。
ALTER ROLE dw_manager IDENTIFIED BY data;
パスワードの変更後、ロールdw_manager
が付与されているユーザーは、新しいパスワードdata
を使用してこのロールを使用可能にする必要があります。
次の例は、ロールdw_manager
をhr.admin
パッケージを使用してアプリケーション・ロールに変更します。
ALTER ROLE dw_manager IDENTIFIED USING hr.admin;
ALTER ROLLBACK SEGMENT
文を使用すると、ロールバック・セグメントのオンライン/オフライン切替え、記憶特性の変更、またはロールバック・セグメントの最適サイズまたは指定サイズへの縮小を行うことができます。
ここでは、データベースがロールバックUNDOモードで実行されている(初期化パラメータUNDO_MANAGEMENT
にMANUAL
を設定、またはすべて設定しない)ことを前提としています。データベースが自動UNDOモードで実行されている場合(初期化パラメータUNDO_MANAGEMENT
にデフォルト値のAUTO
を設定)、ユーザーが作成したロールバック・セグメントは意味を持ちません。
参照:
|
ALTER ROLLBACK SEGMENT
システム権限が必要です。
(storage_clause、size_clause::=を参照)
既存のロールバック・セグメントの名前を指定します。
ONLINE
を指定すると、ロールバック・セグメントをオンラインにできます。ロールバック・セグメントを作成した場合、最初はオフライン状態になり、トランザクションに使用できなくなります。この句を指定した場合、ロールバック・セグメントはオンラインになり、インスタンスは、トランザクションに対してそのロールバック・セグメントを使用できるようになります。また、初期化パラメータROLLBACK_SEGMENTS
を使用すると、インスタンスの起動時にロールバック・セグメントをオンラインにできます。
OFFLINE
を指定すると、ロールバック・セグメントをオフラインにできます。
オフラインになっているロールバック・セグメントは、どのインスタンスからもオンラインにできます。
ロールバック・セグメントがオンラインかオフラインかを確認するには、データ・ディクショナリ・ビューDBA_ROLLBACK_SEGS
のSTATUS
列を問い合せます。オンライン・ロールバック・セグメントの値はIN_USE
です。オフライン・ロールバック・セグメントの値はAVAILABLE
です。
SYSTEM
ロールバック・セグメントをオフラインにすることはできません。
storage_clause
を使用すると、ロールバック・セグメントの記憶特性を変更できます。
INITIAL
パラメータの値は変更できません。ロールバック・セグメントがローカル管理表領域にある場合、変更可能な記憶域パラメータはOPTIMAL
のみです。ロールバック・セグメントがディクショナリ管理表領域にある場合、変更可能な記憶域パラメータは、NEXT
、MINEXTENTS
、MAXEXTENTS
およびOPTIMAL
のみです。
SHRINK
を指定すると、ロールバック・セグメントを最適サイズまたは指定サイズに縮小できます。縮小されるかどうか、および縮小量は、ロールバック・セグメントの使用可能領域およびアクティブ・トランザクションのロールバック・セグメント内での領域保持状態の状況によって異なります。
TO
size_clause
に値を指定しなかった場合、ロールバック・セグメントを作成したCREATE ROLLBACK SEGMENT
文のstorage_clause
のOPTIMAL
で指定した値が、デフォルトのサイズになります。OPTIMAL
値を指定しなかった場合、CREATE ROLLBACK SEGMENT
文のstorage_clause
のMINEXTENTS
で指定した値がデフォルトのサイズになります。
TO
size_clause
に値を指定するかどうかにかかわらず、次のことがいえます。
CREATE ROLLBACK SEGMENT
文のOPTIMAL
値に戻ります。
ロールバック・セグメントを縮小した後でロールバック・セグメントの実際のサイズを確認する場合は、DBA_SEGMENTS
ビューのBYTES
列、BLOCKS
列およびEXTENTS
列を問い合せます。
Oracle Real Application Clusters環境では、インスタンスに対してオンライン状態のロールバック・セグメントのみを縮小できます。
次の例では、ロールバック・セグメントrbs_one
(「ロールバック・セグメントの作成例:」で作成)を使用します。
次の文は、ロールバック・セグメントrbs_one
をオンラインにします。
ALTER ROLLBACK SEGMENT rbs_one ONLINE;
次の文は、ロールバック・セグメントrbs_one
を縮小します。
ALTER ROLLBACK SEGMENT rbs_one SHRINK TO 100M;
ALTER
SEQUENCE
文を使用すると、既存の順序の増分値、最小値および最大値、キャッシュされる数および動作を変更できます。この文は、順序番号に影響します。
順序が自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、順序に対するALTER
オブジェクト権限またはALTER
ANY
SEQUENCE
システム権限が必要です。
この文のキーワードおよびパラメータの意味は、順序を作成する場合と同じです。
NEXTVAL
を最初に呼び出す前に、INCREMENT
BY
の値を変更する場合、いくつかの順序番号がスキップされます。このため、元のSTART
WITH
の値を保持するには、順序を削除し、これを元のSTART
WITH
の値および新しいINCREMENT
BY
の値を使用して再作成する必要があります。
MAXVALUE
の値に現行の順序番号より小さい値は指定できません。次の文は、customers_seq
順序(「順序の作成例:」で作成)に新しい最大値を設定します。
ALTER SEQUENCE customers_seq MAXVALUE 1500;
次の文は、customers_seq
順序にCYCLE
およびCACHE
オプションを指定します。
ALTER SEQUENCE customers_seq CYCLE CACHE 5;
ALTER
SESSION
文を使用すると、データベースへの接続に影響するすべての条件またはパラメータを、設定または変更できます。この文は、データベースとの接続を切断するまで有効です。
SQLトレース機能を使用可能または使用禁止にするには、ALTER
SESSION
システム権限が必要です。
再開可能な領域割当てを使用可能または使用禁止にするには、RESUMABLE
システム権限が必要です。
特に指定がないかぎり、これ以外の操作についての権限は必要ありません。
ADVISE
句を指定すると、分散トランザクションを強制処理するためのアドバイスをリモート・データベースに送ることができます。リモート・データベース内のDBA_2PC_PENDING
ビューのADVICE
列に、アドバイスが表示されます(値'C
'がCOMMIT
、'R
'がROLLBACK
、' 'がNOTHING
を示します)。トランザクションの状態がインダウトになった場合、データベース管理者は、このアドバイスを使用してトランザクションをコミットするか、ロールバックするかを決定できます。
単一トランザクションにおいて、ADVISE
句を指定したALTER
SESSION
文を複数発行し、リモート・データベースごとに異なるアドバイスを送ることができます。ADVISE句を指定した文はそれぞれ、ADVISE句を指定した別の文が発行されるまで、トランザクション内の後続する文で参照されるデータベースに対してアドバイスを送ります。
CLOSE
DATABASE
LINK
を指定すると、データベース・リンクdblink
をクローズできます。データベース・リンクを使用するSQL文を発行した場合、Oracle Databaseは、このデータベース・リンクを使用してリモート・データベース上にセッションを作成します。この接続は、セッションの終了またはデータベース・リンクの数が初期化パラメータOPEN_LINKS
の値を超えるまでオープンされています。リンクをオープンしたままにしておくことによって発生するネットワークのオーバーヘッドを減らすには、セッションでデータベース・リンクを再度使用しない場合に、この句を使用してデータベース・リンクを明示的にクローズします。
プロシージャおよびストアド・ファンクションはPL/SQLで記述されるため、COMMIT
文とROLLBACK
文を発行できます。アプリケーション自体が直接発行していないCOMMIT
文やROLLBACK
文によって、アプリケーションが中断される場合、DISABLE
COMMIT
IN
PROCEDURE
を指定して、セッション中にコールされるプロシージャおよびストアド・ファンクションがこれらの文を発行しないように制御します。
その後、ENABLE
COMMIT
IN
PROCEDURE
を指定することによって、セッションでプロシージャおよびストアド・ファンクションがCOMMIT
およびROLLBACK
文を発行できるようになります。
一部のアプリケーションは、自動的にプロシージャおよびストアド・ファンクションでのCOMMIT
文やROLLBACK
文を禁止します。詳細は、ご使用のアプリケーションのドキュメントを参照してください。
ALTER
DATABASE
のsecurity_clause
を使用すると、SYS
ユーザー以外のユーザーは、プライマリ・データベースまたはスタンバイ・データベース上のデータまたはデータベース・オブジェクトを変更できなくなります。この句を使用すると、現行のセッションの設定を上書きできます。
PARALLEL
パラメータを使用すると、そのセッションの後続のDML、DDLまたは問合せ文をパラレル実行するかどうかを指定できます。この句は、現行のセッション中に表自体を変更せずに、表の並列度を上書き可能にします。コミットされていないトランザクションは、DMLに対してこの句を実行する前に、コミットまたはロールバックされる必要があります。
ENABLE
を指定すると、セッション内の後続文をパラレルで実行できます。これは、DDL文および問合せ文のデフォルトです。
DML
: パラレル・ヒントまたはパラレル句が指定されている場合に、DML文をパラレル・モードで実行します。
DDL
: パラレル句が指定されている場合に、DDL文をパラレル・モードで実行します。
QUERY
: パラレル・ヒントまたはパラレル句が指定されている場合に、問合せをパラレル・モードで実行します。
オプションのPARALLEL
integer
にENABLE
を指定することはできません。
DISABLE
を指定すると、セッション内の後続文をシリアルで実行できます。これは、DML文のデフォルトです。
オプションのPARALLEL
integer
にDISABLE
を指定することはできません。
FORCE
を使用すると、セッションの後続文を強制的にパラレル実行できます。パラレル句もパラレル・ヒントも指定されていない場合は、デフォルトの並列度が使用されます。この句は、セッションの後続文に指定されたすべてのparallel_clause
を上書きしますが、パラレル・ヒントによって上書きされます。
DML
: パラレルDML制限のどれにも違反していない場合、特定の並列度がこの句に指定されていないかぎり、セッションの後続のDML文は、デフォルトの並列度で実行されます。
DDL
: 特定の並列度がこの句に指定されていないかぎり、セッションの後続のDDL文は、デフォルトの並列度で実行されます。結果のデータベース・オブジェクトは、通常の並列度に対応します。FORCE
DDL
を指定した場合、そのセッションで作成されるすべての表は、自動的にデフォルトの並列度で作成されます。結果は、CREATE
TABLE
文で(デフォルトの並列度を使用して)parallel_clause
を指定した場合と同じです。
QUERY
: 特定の並列度がこの句に指定されていないかぎり、後続の問合せは、デフォルトの並列度で実行されます。
並列度を明示的に指定する整数を指定します。
FORCE
DDL
では、並列度は後続のDDL文のパラレル句を上書きします。
FORCE
DML
およびFORCE QUERY
では、並列度は、データ・ディクショナリの表に格納されている現行の並列度を上書きします。
次のDML操作は、この句に関係なくパラレル化されません。
LONG
またはLOBデータ型が含まれている表またはスキーマ・オブジェクトでの操作
これらの句を使用すると、再開可能な領域割当てを使用可能および使用禁止にできます。この機能によって、領域不足のエラー条件が発生した場合に操作は停止され、エラー条件が修復されたときに中断したところから自動的に再開されます。
この句を使用すると、セッションに対する再開可能な領域割当てを使用可能にできます。
TIMEOUT
を使用すると、エラー条件が修復されるまで操作を停止する時間を秒単位で指定できます。エラー条件がTIMEOUT
で指定した時間までに修復されない場合は、停止操作は異常終了します。
NAME
を使用すると、ユーザー定義のテキスト文字列を指定することができ、再開可能モードのセッション中に発行される文の識別に有効です。USER_RESUMABLE
データ・ディクショナリ・ビューおよびDBA_RESUMABLE
データ・ディクショナリ・ビューに、テキスト文字列が挿入されます。NAME
を指定しない場合は、デフォルト文字列「User
username
(userid
), Session
sessionid
, Instance
instanceid
」が挿入されます。
この句を使用すると、セッションに対する再開可能な領域割当てを使用禁止にできます。
alter_session_set_clause
を使用すると、セッションの初期化パラメータの値を設定できます。
この句では、2種類のパラメータを設定できます。
ALTER
SESSION
文の有効範囲内で動的な初期化パラメータ(「初期化パラメータおよびALTER SESSION」を参照)
同じalter_session_set_clause
で複数のパラメータに対する値を設定できます。
一部の初期化パラメータは、ALTER
SESSION
の有効範囲内で動的です。ALTER
SESSION
を使用してこれらのパラメータを設定すると、設定した値は現行セッションでのみ保持されます。パラメータをALTER
SESSION
文で変更できるかどうかを確認するには、V$PARAMETER
動的パフォーマンス・ビューのISSES_MODIFIABLE
列を問い合せます。
ALTER
SESSION
で設定可能な一部のパラメータは、初期化パラメータではありません。初期化パラメータ・ファイルではなく、ALTER
SESSION
でのみ設定可能です。これらのセッション・パラメータの詳細は、「セッション・パラメータおよびALTER SESSION」を参照してください。
次のパラメータは、セッション・パラメータであり、初期化パラメータではありません。
CONSTRAINT[S] = { IMMEDIATE | DEFERRED | DEFAULT }
CONSTRAINT[S]
は、遅延可能制約によって指定された条件を、いつ適用するかを指定します。
IMMEDIATE
を設定すると、遅延可能な制約によって指定される条件は、各DML文の直後にチェックされます。これは、セッションの各トランザクションの開始時に、SET
CONSTRAINTS
ALL
IMMEDIATE
文を発行することと同じです。
DEFERRED
を設定すると、遅延可能な制約によって指定される条件は、トランザクションのコミット時にチェックされます。これは、セッションの各トランザクションの開始時に、SET
CONSTRAINTS
ALL
DEFERRED
文を発行することと同じです。
DEFAULT
を設定すると、すべての制約は各トランザクションの開始時に、DEFERRED
またはIMMEDIATE
の初期状態にリストアされます。
CURRENT_SCHEMA = schema
CURRENT_SCHEMA
は、セッションの現行のスキーマを、指定したスキーマに変更します。セッション中のスキーマ・オブジェクトに対する後続の未修飾の参照は、この指定したスキーマ内でオブジェクトに変換されます。この設定は、現行のセッションの存続期間中、またはALTER
SESSION
SET
CURRENT_SCHEMA
文を再発行するまで保持されます。
この設定によって、現行のユーザーのスキーマ以外にあるオブジェクトに対する操作を、オブジェクトをスキーマ名で修飾することなく簡単に行えます。この設定によって、現行のスキーマは変更されますが、このセッションのユーザーまたは現行のユーザーは変更されません。また、セッション・ユーザーには、このセッションに対する追加のシステム権限またはオブジェクト権限は付与されません。
ERROR_ON_OVERLAP_TIME = {TRUE | FALSE}
ERROR_ON_OVERLAP_TIME
パラメータには、Oracle Databaseが不明瞭な境界日時値(日時が標準か夏時間かが明確でない場合)を処理する方法を指定します。
TRUE
を指定すると、不明瞭なオーバラップ・タイムスタンプに対してエラーが戻されます。
FALSE
を指定すると、不明瞭なオーバラップ・タイムスタンプは標準時刻のデフォルトになります。これはデフォルトです。
境界日時値の詳細は、「夏時間のサポート」を参照してください。
FLAGGER = { ENTRY | INTERMEDIATE | FULL | OFF }
FLAGGER
パラメータは、FIPSのフラグ付けを指定します。このフラグ付けを使用した場合、ANSI SQL92の拡張要素であるSQL文が発行されたときに、エラー・メッセージが生成されます。FLAGGER
は、セッション・パラメータであり、初期化パラメータではありません。
Oracle Databaseでは、ENTRYレベル、INTERMEDIATEレベル、FULLレベルのそれぞれのフラグ付けに違いはありません。セッションでフラグ付けが設定されると、これに続くALTER
SESSION
SET
FLAGGER
文は成功しますが、ORA-00097のメッセージが生成されます。このため、セッションを切断しなくてもFIPSのフラグ付けを変更できます。OFF
を設定した場合、フラグ付けの使用は停止されます。
INSTANCE = integer
INSTANCE
パラメータを設定すると、自分のインスタンスに接続している場合と同様に、別のインスタンスにもアクセスできます。INSTANCE
はセッション・パラメータであり、初期化パラメータではありません。Oracle Real Application Clusters(RAC)環境では、このパラメータの設定に基づき、各RACインスタンスで、最適なDMLパフォーマンスを実現するようにディスク領域の静的または動的な所有権が保持されます。
ISOLATION_LEVEL = {SERIALIZABLE | READ COMMITTED}
ISOLATION_LEVEL
パラメータは、データベースを変更するトランザクションがどのように処理されるかを指定します。ISOLATION_LEVEL
はセッション・パラメータであり、初期化パラメータではありません。
SERIALIZABLE
を設定すると、セッション内のトランザクションは、SQL92に規定されているとおりシリアル化可能トランザクション分離モードを使用します。シリアル化可能トランザクションが行を更新するDML文を実行する場合、現在の更新対象の行がそのシリアル化可能トランザクションの開始時にコミットされていない別のトランザクションによって更新されていたときは、そのDML文は失敗します。シリアル化可能トランザクションは、同一トランザクション内で行った更新を確認できます。
READ
COMMITTED
を設定すると、セッション内のトランザクションは、Oracle Databaseトランザクションのデフォルトの動作を行います。別のトランザクションで行ロックを保持しておく必要があるDMLがトランザクションに指定されていると、DML文は行ロックが解除されるまで待ち状態になります。
TIME_ZONE = '[+ | -] hh:mm' | LOCAL | DBTIMEZONE | 'time_zone_region'
TIME_ZONE
パラメータには、現行のSQLセッションのデフォルトのローカル・タイムゾーン・オフセットまたは地域名を指定します。TIME_ZONE
はセッション・パラメータであり、初期化パラメータではありません。現行のセッションのタイムゾーンを確認するには、組込み関数SESSIONTIMEZONE
を問い合せます(「SESSIONTIMEZONE」を参照)。
'[+|-]
hh:mm
'
)を指定します。hh:mm
の有効範囲は、-12:00〜+14:00です。
LOCAL
を指定すると、現行のSQLセッションのデフォルトのローカル・タイムゾーン・オフセットが、現行のSQLセッションを起動したときに構築された、元のデフォルトのローカル・タイムゾーン・オフセットに設定されます。
DBTIMEZONE
を指定すると、現行のセッションのタイムゾーンにデータベースのタイムゾーンと一致する値が設定されます。この設定を指定する場合、DBTIMEZONE
ファンクションは、データベースのタイムゾーンをUTCオフセットまたはタイムゾーン地域として戻します。これはデータベースのタイムゾーンの設定に依存します。
time_zone_region
を指定します。有効な地域名を表示するには、V$TIMEZONE_NAMES
動的パフォーマンス・ビューのTZNAME
列を問い合せます。この設定を指定する場合、SESSIONTIMEZONE
ファンクションは地域の名前を戻します。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_STORED_OUTLINES
が使用可能な場合は、このパラメータを使用可能にできません。
USE_STORED_OUTLINES = { TRUE | FALSE | category_name }
USE_STORED_OUTLINES
パラメータは、オプティマイザが実行計画を生成するためにストアド・パブリック・アウトラインを使用するかどうかを決定します。USE_STORED_OUTLINES
は、初期化パラメータではありません。
TRUE
に設定すると、要求をコンパイルするときに、オプティマイザはDEFAULT
カテゴリのストアド・アウトラインを使用します。
FALSE
に設定すると、オプティマイザはストアド・アウトラインを使用しません。これはデフォルトです。
category_name
に設定すると、要求をコンパイルするときに、オプティマイザはcategory_name
カテゴリのストアド・アウトラインを使用します。
USE_PRIVATE_OUTLINES
が使用可能な場合は、このパラメータを使用可能にできません。
次の文は、現行のセッションでパラレルDMLモードを使用可能にします。
ALTER SESSION ENABLE PARALLEL DML;
次のトランザクションは、データベース・リンクremote
によって識別されるデータベース上のemployees
表に従業員のレコードを挿入し、local
によって識別されるデータベース上のemployees
表から従業員のレコードを削除します。
ALTER SESSION ADVISE COMMIT; INSERT INTO employees@remote VALUES (8002, 'Juan', 'Fernandez', 'juanf@hr.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通貨記号に動的に変更します。
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
次の文は、各国通貨記号を'DM
'に動的に変更します。
ALTER SESSION SET NLS_CURRENCY = 'DM'; SELECT TO_CHAR( SUM(salary), 'L999G999D99') Total FROM employees; TOTAL --------------------- DM694.900,00
次の文は、表示されたエラー・メッセージの言語をフランス語に動的に変更します。
ALTER SESSION SET NLS_LANGUAGE = FRENCH; Session modifiee. SELECT * FROM DMP; ORA-00942: Table ou vue inexistante
次の文は、言語ソート順序をスペイン語に動的に変更します。
ALTER SESSION SET NLS_SORT = XSpanish;
これによって、文字の値はスペイン語のソート順序に基づいてソートされます。
次の文は、セッションに対してSQLトレース機能を使用可能にします。
ALTER SESSION SET SQL_TRACE = TRUE;
次の文は、明示的に使用禁止にされていないすべてのマテリアライズド・ビューに対する現行のセッションのクエリー・リライトを使用可能にします。
ALTER SESSION SET QUERY_REWRITE_ENABLED = TRUE;
ALTER
SYSTEM
文を使用すると、Oracle Databaseインスタンスを動的に変更できます。この設定は、データベースがマウントされているかぎり有効です。
ALTER
SYSTEM
システム権限が必要です。
(archive_log_clause::=、checkpoint_clause::=、check_datafiles_clause::=、distributed_recov_clauses::=、end_session_clauses::=、quiesce_clauses::=、rolling_migration_clauses::=、alter_system_security_clauses::=、shutdown_dispatcher_clause::=、alter_system_set_clause::=、alter_system_reset_clause::=を参照)
archive_log_clause
を使用すると、REDOログ・ファイルを手動でアーカイブしたり、自動アーカイブを使用可能または使用禁止にすることができます。この句を使用する場合、インスタンスでデータベースをマウントする必要があります。特に指定がないかぎり、データベースはオープンまたはクローズできます。
この句が関係するのは、Oracle Real Application Clusters(RAC)を使用している場合のみです。REDOログ・ファイル・グループをアーカイブするインスタンスの名前を指定します。インスタンス名は最大80文字の文字列です。指定したインスタンスにマップするスレッドはOracle Databaseによって自動的に決定され、対応するREDOログ・ファイル・グループがアーカイブされます。指定したインスタンスにマップされているスレッドがない場合、エラーが戻されます。
SEQUENCE
を指定すると、指定したスレッド内のログ順序番号integer
によって識別されるオンラインREDOログ・ファイル・グループを手動でアーカイブできます。THREAD
パラメータを指定しなかった場合、インスタンスに割り当てられているスレッドから、指定したグループがアーカイブされます。
CHANGE
を指定すると、オンラインREDOログ・ファイル・グループを、手動でアーカイブできます。このグループには、指定したスレッド内のinteger
によって識別されるSCNを持つREDOログ・エントリが含まれます。このSCNが現行のREDOログ・ファイル・グループ内にある場合、ログ・スイッチが実行されます。THREAD
パラメータを指定しない場合、使用可能な状態にあるすべてのスレッドから、このSCNを含むグループがアーカイブされます。
インスタンスでデータベースをオープンしている場合にのみ、この句を使用できます。
CURRENT
を指定すると、ログ・スイッチを強制的に発生させ、指定したスレッドの現行のREDOログ・ファイル・グループを手動でアーカイブできます。THREAD
パラメータを指定しない場合、すべての使用可能なスレッドから、現行のログ以前のログも含むすべてのREDOログ・ファイル・グループがアーカイブされます。データベースがオープンしているときのみ、CURRENT
を指定できます。
NOSWITCH
を指定すると、ログ・スイッチの強制実行なしで現行のREDOログ・ファイル・グループを手動でアーカイブできます。この設定は、プライマリ・データベースが停止したときに、データ分岐が発生しないようにするために、主にスタンバイ・データベースで使用されます。データ分岐は、プライマリ・データベースに障害が発生した場合に、データが消失する可能性があることを意味します。
インスタンスでデータベースがマウントされているがオープンされていない場合にのみ、NOSWITCH
句を使用できます。データベースがオープンしている場合は、この操作によってデータベースは自動的にクローズされます。再オープンする前にデータベースを手動で停止する必要があります。
GROUP
を指定すると、オンラインREDOログ・ファイル・グループを手動でアーカイブできます。このグループには、integer
によって識別されるGROUP
値が含まれます。REDOログ・ファイル・グループのGROUP
値を確認するには、データ・ディクショナリ・ビューDBA_LOG_GROUPS
を問い合せます。THREAD
パラメータとGROUP
パラメータの両方を指定する場合は、指定するREDOログ・ファイル・グループが、指定するスレッド内に含まれている必要があります。
LOGFILE
を指定すると、オンラインREDOログ・ファイル・グループを手動でアーカイブできます。このグループには、'filename
'によって識別されるREDOログ・ファイル・メンバーが含まれます。THREAD
パラメータとLOGFILE
パラメータの両方を指定する場合は、指定するREDOログ・ファイル・グループが、指定するスレッド内に含まれている必要があります。
データベースがバックアップ制御ファイルでマウントされている場合は、USING
BACKUP
CONTROLFILE
を指定し、現行のログ・ファイルを含むすべてのオンライン・ログ・ファイルのアーカイブを許可します。
REDOログ・ファイル・グループは、一杯になった順にアーカイブする必要があります。LOGFILE
パラメータを使用してREDOログ・ファイル・グループのアーカイブを指定した場合、それ以前のREDOログ・ファイル・グループがアーカイブされていないとエラー・メッセージが戻ります。
NEXT
を指定すると、一杯になってもアーカイブされていない次のオンラインREDOログ・ファイルを、指定したスレッドから手動でアーカイブできます。THREAD
パラメータを指定しない場合、使用可能な任意のスレッド上の、アーカイブされていない最初のREDOログ・ファイル・グループがアーカイブされます。
ALL
を指定すると、一杯になってもアーカイブされていないすべてのオンラインREDOログ・ファイルを、指定したスレッドから手動でアーカイブできます。THREAD
パラメータを指定しない場合、使用可能なすべてのスレッドから、一杯でアーカイブされていないすべてのREDOログ・ファイル・グループがアーカイブされます。
以前のリリースでは、この句を使用すると、インスタンスに割り当てられたスレッドについて、REDOログ・ファイル・グループの自動アーカイブが使用可能になります。この句は現在非推奨になっています。Oracle Databaseは、REDOログ・ファイル・グループの自動アーカイブを自動的に使用可能にします。この句は無効です。この句を指定すると、アラート・ログにメッセージが書き込まれます。
TO
'location
'を指定すると、REDOログ・ファイル・グループがアーカイブされる位置を指定できます。このパラメータの値には、オペレーティング・システムの規則に従って、ファイルの位置を完全に指定する必要があります。このパラメータを指定しない場合、REDOログ・ファイル・グループは初期化パラメータLOG_ARCHIVE_DEST
またはLOG_ARCHIVE_DEST_
n
に指定された場所に格納されます。
以前のリリースでは、この句を使用すると、インスタンスに割り当てられたスレッドについて、REDOログ・ファイル・グループの自動アーカイブが使用禁止になります。この句は現在非推奨になっています。この句は無効です。この句を指定すると、アラート・ログにメッセージが書き込まれます。
CHECKPOINT
を指定すると、チェックポイントを明示的に強制処理して、コミット済のトランザクションによる変更をディスク上のデータ・ファイルに書き込むことができます。インスタンスでデータベースがオープンしている場合にのみ、この句を指定できます。チェックポイントが完了するまで、ユーザーに制御は戻りません。
Oracle Real Application Clusters(RAC)環境で、データベースをオープンしているすべてのインスタンスに対してチェックポイントを実行します。これはデフォルトです。
Oracle RAC環境で、文を発行するインスタンスのREDOログ・ファイル・グループのスレッドに対してのみチェックポイントを実行します。
Oracle RAC環境などの分散データベース・システムで、データベース制御ファイルからインスタンスのSGAを更新し、すべてのオンライン・データ・ファイルに情報を反映します。
GLOBAL
を指定すると、データベースをオープンしているすべてのインスタンスに対して、この同期化を実行できます。これはデフォルトです。
LOCAL
を指定すると、ローカル・インスタンスに対してのみこの同期化を実行できます。
インスタンスでデータベースをオープンしておく必要があります。
end_session_clauses
を使用すると、現行のセッションを終了することができます。
DISCONNECT
SESSION
句を使用すると、専用サーバー・プロセス(共有サーバーによって接続が確立されていた場合は、仮想回路)を破棄することによって、現行のセッションが切断されます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。次の両方の値をV$SESSION
ビューで確認して、このセッションを識別する必要があります。
システム・パラメータを適切に設定した場合、アプリケーション・フェイルオーバーが有効になります。
POST_TRANSACTION
を設定すると、セッションが切断される前に、実行中のトランザクションを完了できます。セッションに実行中のトランザクションがない場合、この句は、後述のKILL
SESSION
と同様の効果があります。
IMMEDIATE
を設定すると、実行中のトランザクションの完了を待たずにセッションを切断し、すぐにセッション全体の状態をリカバリできます。
KILL
SESSION
を指定すると、セッションに終了済のマークが付き、実行中のトランザクションがロールバックされ、すべてのセッション・ロックが解放され、セッション・リソースが一部リカバリされます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。integer3
を指定しない場合は、自セッションおよび終了されるセッションは、同じインスタンスにある必要があります。次の値をV$SESSION
ビューで確認して、このセッションを識別する必要があります。
integer1
には、SID
列の値を指定します。
integer2
には、SERIAL#
列の値を指定します。
integer3
には、終了されるターゲット・セッションが存在するインスタンスのIDを指定します。GV$表を問い合せることによって、インスタンスIDを確認することができます。
リモート・データベースからの応答を待ったり、トランザクションをロールバックするなど、最後まで完了する必要があるアクティビティをセッションが実行している場合、Oracle Databaseはこのアクティビティが完了するまで待機し、セッションに終了済のマークを付け、その後、ユーザーに制御を戻します。待ち時間が1分以上続く場合は、終了されるセッションにマークが付けられ、マークが付けられたセッションが終了されることを示すメッセージとともにユーザーに制御が戻されます。アクティビティが完了すると、PMON
バックグラウンド・プロセスは、セッションに終了済のマークを付けます。
セッションに実行中のトランザクションがあるかどうかにかかわらず、セッション・ユーザーがセッションに要求を発行してセッションが終了されたことを示すメッセージを受け取るまで、Oracle Databaseは、セッション全体の状態をリカバリしません。
IMMEDIATE
を指定すると、実行中のトランザクションをロールバックしてすべてのセッション・ロックを解放し、セッション全体の状態をリカバリしてから、すぐにユーザーに制御を戻すようにOracle Databaseに指示できます。
DISTRIBUTED
RECOVERY
句を使用すると、分散リカバリを使用可能または使用禁止にできます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。
ENABLE
を指定すると、分散リカバリを使用可能にできます。シングルプロセス環境では、分散リカバリを開始する場合にこの句を使用する必要があります。
トランザクションに関係があるリモート・ノードにアクセスできない場合、インダウト・トランザクションをリカバリするには、ENABLE
DISTRIBUTED
RECOVERY
文を複数回発行する必要がある場合もあります。インダウト・トランザクションは、データ・ディクショナリ・ビューDBA_2PC_PENDING
に表示されます。
DISABLE
を指定すると、分散リカバリを使用禁止にできます。
FLUSH
SHARED
_POOL
句を指定すると、SGAの共有プール上のすべてのデータが消去されます。共有プールは次のものを格納します。
この文は、現在実行中の項目に対する共有SQL領域および共有PL/SQL領域を消去しません。インスタンスでデータベースがマウントされていてもディスマウントされていても、またはオープン状態でもクローズ状態でも、この句を使用できます。
FLUSH
BUFFER_CACHE
句を指定すると、システム・グローバル領域(SGA)のバッファ・キャッシュ上のすべてのデータを消去できます。
この句は、リライトされた問合せ、または同一の開始点からの一連の問合せのパフォーマンスを測定する必要がある場合に有効です。
SWITCH
LOGFILE
句を指定すると、現行のREDOログ・ファイル・グループのファイルが一杯であるかどうかにかかわらず、新しいREDOログ・ファイル・グループへの書込みを明示的かつ強制的に開始できます。ログ・スイッチを強制的に発生させると、チェックポイントが実行されますが、チェックポイントが完了する前に、すぐに制御が戻されます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。
SUSPEND
句を指定すると、すべてのI/O(データ・ファイル、制御ファイルおよびファイル・ヘッダー)および問合せを停止し、すべてのインスタンスで実行中のトランザクションを処理せずにデータベースのコピーが作成可能になります。
SUSPEND
とRESUME
には、次の制限事項があります。
ALTER
SYSTEM
SUSPEND
文を発行したセッションは終了しないでください。システムが一時停止しているときに再接続しようとすると、SYS
ログイン中に実行される再帰的SQLが原因となって接続が失敗することがあります。
RESUME
句を指定すると、問合せおよびI/Oに対して、再度、データベースが使用可能になります。
クラスタ化された自動ストレージ管理(ASM)環境内でこれらの句を使用すると、ASMクラスタまたはストレージにASMを使用するデータベース・クラスタの全体的な可用性に影響することなく、ノードを一度に1つずつ別のASMバージョンに移行できます。
ローリング・アップグレードを開始するときに、ASM_version
について、次の5つの文字列を指定する必要があります。
<version_num>, <release_num>, <update_num>,<port_release_num>,<port_update_num>
ASM_version
は、11.1.0.0.0以上である必要があります。次に、自動ストレージ管理は、最初に、指定されたリリースへの移行について現在のリリースに互換性があることを確認し、制限された機能モードになります。自動ストレージ管理は、次に、クラスタ内で均衡の再調整処理が進行中かどうかを確認します。そのような操作がある場合、文は失敗し、均衡の再調整操作の完了後に文を再発行する必要があります。
ローリング・アップグレード・モードは、クラスタ全体でメモリー内に永続的に保持される状態です。クラスタは、少なくとも1つのASMインスタンスがクラスタ内で実行中になるまで、この状態であり続けます。クラスタに参加する新しいインスタンスは、起動時にすぐに移行モードに切り替わります。クラスタ内のすべてのインスタンスが終了すると、この後に自動ストレージ管理インスタンスを起動しても、この文を再発行して自動ストレージ管理インスタンスのローリング・アップグレードを再開するまでは、ローリング・アップグレード・モードにはなりません。
この句を使用すると、ローリング・アップグレードを停止して、クラスタを通常の操作に戻すことができます。クラスタ内のすべてのインスタンスが同じソフトウェア・バージョンに移行した後にのみ、この句を指定します。クラスタがローリング・アップグレード・モードではない場合、文は失敗します。
この句を指定すると、自動ストレージ管理インスタンスはクラスタのすべてのメンバーが同じソフトウェア・バージョンであることを検証し、インスタンスをローリング・アップグレード・モードから除外して、自動ストレージ管理クラスタの完全な機能に戻ります。ディスクがオフラインであるために均衡の再調整操作が保留中の場合、操作は再起動されます。ただし、そのような再起動によってASM_POWER_LIMIT
パラメータに違反することにならない場合にかぎります。
QUIESCE
RESTRICTED
句およびUNQUIESCE
句を使用すると、データベースを静止状態にしたり、静止状態から戻すことができます。この状態では、データベース管理者は、トランザクション、問合せまたはPL/SQL操作が同時に存在する状態では安全に実行できない管理操作を実行することができます。
複数のQUIESCE
RESTRICTED
文またはUNQUIESCE
文が異なるセッションまたはインスタンスで同時に発行された場合、1つを除いた他のすべてのセッションまたはインスタンスにエラーが戻されます。
QUIESCE
RESTRICTED
を指定すると、データベースを静止状態にできます。この句は、データベースがオープン中のすべてのインスタンスに次の影響を与えます。
SYS
およびSYSTEM
以外)をアクティブにしないように指示します。SYS
およびSYSTEM
以外のユーザーは、新しいトランザクション、問合せ、フェッチまたはPL/SQL操作を開始できません。
SYS
またはSYSTEM
以外のユーザーが開始した、すべてのインスタンスの既存のトランザクションが終了するまで(コミットまたは異常終了するまで)待機します。また、Oracle Databaseは、SYS
またはSYSTEM
以外のユーザーが開始した、内部トランザクションにない、すべてのインスタンスで実行中のすべての問合せ、フェッチおよびPL/SQLプロシージャが終了するまで待機します。連続する複数のOracle Call Interface(OCI)のフェッチによって問合せが実行される場合、Oracle Databaseはすべてのフェッチが終了するまで待機しません。現行のフェッチが終了するまで待機しますが、次のフェッチは行われません。Oracle Databaseは、エンキューなどの共有リソースを保持するすべてのセッション(SYS
およびSYSTEM
以外のセッション)がリソースを解放するまで待機します。すべての操作が完了した後、Oracle Databaseはデータベースを静止状態にし、QUIESCE
RESTRICTED
文の実行を終了します。
SYS
またはSYSTEM
以外のユーザーがそのインスタンスにログインすることを阻止するようにデータベース・リソース・マネージャに指示します。非共有サーバー・モードでインスタンスを実行している場合、そのインスタンスへのユーザー・ログインに制限はありません。
静止状態中、すべてのインスタンスにおいてリソース・マネージャのプランは変更できません。
UNQUIESCE
を指定すると、データベースを静止状態から戻すことができます。これによって、SYS
またはSYSTEM
以外のユーザーによって開始された、トランザクション、問合せ、フェッチおよびPL/SQLプロシージャを再開できます。UNQUIESCE
文は、QUIESCE
RESTRICTED
文を発行したセッションと同じセッションで起動する必要はありません。
alter_system_security_clauses
を使用すると、インスタンスへのアクセスを制御できます。
RESTRICTED
SESSION
句を指定すると、Oracle Databaseにログインできるユーザーを制限できます。インスタンスでデータベースがマウントされていてもディスマウントされていても、またはオープン状態でもクローズ状態でも、この句を使用できます。
ENABLE
を指定すると、RESTRICTED
SESSION
システム権限が付与されているユーザーのみがOracle Databaseにログインできます。既存のセッションは終了しません。この句は、現行のインスタンスのみに適用されます。そのため、Oracle RAC環境では、RESTRICTED
SESSION
システム権限を持たない認可済ユーザーも他のインスタンスでデータベースにアクセスできます。
DISABLE
を指定すると、ENABLE
RESTRICTED
SESSION
句の効果を無効にできます。つまり、CREATE
SESSION
システム権限が付与されているすべてのユーザーがOracle Databaseにログインできるようになります。これはデフォルトです。この句を使用すると、サーバー・ウォレット内の情報へのデータベース・アクセスを管理できます。この文は、キーワードALTER
で始まりますが、ALTER
SYSTEM
SET
ENCRYPTION
WALLET
文はDDL句ではありません。ただし、このような文はロールバックすることはできません。
この句を指定すると、データベースは指定されたパスワードを使用してサーバー・ウォレット内の情報をメモリーにロードし、インスタンスの存続期間中にデータベース・アクセスができるようになります。この句を使用すると、データベースは、SSOウォレットなしにサーバー・ウォレットからキーを取得できます。サーバー・ウォレットが使用できないか、すでに開いている場合は、データベースからエラーが戻ります。このコンテキストでは、パスワードを二重引用符で囲む必要があります。
この句を使用すると、メモリーからサーバー・ウォレットの情報が削除されます。
この句を使用すると、新しい暗号化キーを生成し、現行のデータの透過的暗号化のマスター鍵として設定できます。また、この句はサーバー・ウォレットのデータベース・アクセス情報をメモリーにロードします。certificate_id
は、証明書を識別する整数です。これは、基本鍵を使用する場合は不要ですが、PKIベースの鍵を使用する場合は必要になります。この値は、V$WALLET
動的パフォーマンス・ビューのCERT_ID
列を問い合せて確認できます。password
には、セキュリティ・モジュールへの接続に使用するパスワードを指定します。指定したcertificate_id
またはパスワードが無効な場合、データベースからエラーが戻ります。このコンテキストでは、パスワードを二重引用符で囲む必要があります。
ALTER
SYSTEM
SET
KEY
文はDDL文です。この文は、スキーマ内で保留中のトランザクションを自動的にコミットします。
データの透過的暗号化機能を使用するには、暗号化ウォレットと暗号化キーの両方を設定する必要があります。
参照:
|
SHUTDOWN
句は、システムにOracle Databaseの共有サーバー・アーキテクチャを使用している場合のみ有効です。dispatcher_name
で識別されたディスパッチャを停止します。
dispatcher_name
は、'D
xxx
'という形式の文字列である必要があります。xxx
はディスパッチャの番号です。ディスパッチャ名のリストを取得するには、V$DISPATCHER
動的パフォーマンス・ビューのNAME
列を問い合せます。
IMMEDIATE
を指定した場合、ディスパッチャは新しい接続の受入れをすぐに中止し、そのディスパッチャによる既存の接続はすべて終了されます。すべてのセッションがクリーンアップされてから、ディスパッチャ・プロセスは停止します。
IMMEDIATE
を指定しない場合、ディスパッチャは新しい接続の受入れをすぐに中止しますが、すべてのユーザーが切断し、すべてのデータベース・リンクが終了されるのを待ちます。その後、ディスパッチャは停止されます。
REGISTER
を指定すると、PMON
バックグラウンド・プロセスによってリスナーにインスタンスがすぐに登録されます。この句を指定しない場合、PMON
が次に検出ルーチンを実行するまでインスタンスの登録は行われません。その結果、クライアントは、リスナー起動後最大60秒間サービスにアクセスできない可能性があります。
従来のプレーン・テキストのパラメータ・ファイル(PFILE)を使用してデータベースを起動したか、サーバー・パラメータ・ファイル(SPFILE)を使用してデータベースを起動したかに応じて、現行のインスタンスの多くの初期化パラメータ値を変更できます。『Oracle Databaseリファレンス』では、各パラメータの説明で、これらのパラメータが「変更可能」というカテゴリに分類されています。PFILEを使用した場合、変更はインスタンスの存続期間中のみ保持されます。一方、SPFILEを使用してデータベースを起動した場合、SPFILE自体のパラメータの値を変更できるため、後続のインスタンスで新しい値が使用されます。
『Oracle Databaseリファレンス』には、すべての初期化パラメータが詳細に記載されています。パラメータは、次の3つのカテゴリに分類されます。
初期化パラメータ値を変更する権限は、従来のプレーン・テキストの初期化パラメータ・ファイル(pfile)を使用してデータベースを起動したか、サーバー・パラメータ・ファイル(spfile)を使用してデータベースを起動したかによって異なります。特定のパラメータ値を変更する権限を持っているかどうかを確認するには、V$PARAMETER
動的パフォーマンス・ビューのISSYS_MODIFIABLE
列を問い合せます。
パラメータ値を設定するときに、次の設定も行えます。
COMMENT
句を使用すると、コメント文字列をパラメータ値の変更に対応付けることができます。SPFILE
をあわせて指定すると、パラメータ・ファイルにコメントが表示され、そのパラメータに対する直前の変更がわかります。
DEFERRED
キーワードを指定すると、データベースに接続するその後のセッションに対するパラメータの値を設定または変更できます。現行のセッションでは変更前の値が残ります。
このパラメータのV$PARAMETER
のISSYS_MODIFIABLE
列の値がDEFERRED
の場合は、DEFERRED
を指定する必要があります。この列の値がIMMEDIATE
の場合、この句のDEFERRED
キーワードはオプションです。この列の値がFALSE
の場合、このALTER
SYSTEM
文ではDEFERRED
を指定できません。
SCOPE
句を使用すると、変更が有効になるタイミングを指定できます。有効範囲は、データベースの起動に使用したファイルが従来のプレーン・テキストのパラメータ・ファイル(pfile)か、サーバー・パラメータ・ファイル(spfile)かによって異なります。
MEMORY
を指定すると、変更がメモリーで行われ、すぐに有効になり、データベースが停止するまで持続されます。パラメータ・ファイル(pfile)を使用してデータベースを起動した場合、この有効範囲のみを指定できます。
SPFILE
を指定すると、変更がサーバー・パラメータ・ファイルで行われます。新しい設定は、データベースが次に停止し、再起動されたときに有効になります。『Oracle Databaseリファレンス』に変更不可能と示されている静的パラメータ値を変更する場合は、SPFILE
を指定する必要があります。
BOTH
を指定すると、変更がメモリーとサーバー・パラメータ・ファイルの両方で行われます。新しい設定はすぐに有効になり、データベースが停止し、再起動された後も持続します。
データベースの起動でサーバー・パラメータ・ファイルを使用した場合は、BOTH
がデフォルトです。データベースの起動でパラメータ・ファイルを使用した場合は、MEMORY
がデフォルトで、これ以外の有効範囲は指定できません。
SID
句を使用すると、値を有効にするインスタンスのSIDを指定できます。
SID
= '*'
を指定します。
sid
のインスタンスのみでパラメータ値を変更する場合、SID
= 'sid'
を指定します。この設定は、SID
= '*'
を指定する前後のALTER
SYSTEM
SET
文より優先されます。
この句を指定しない場合は、次のようになります。
SID
=
'*'
を指定したとみなされます。
現行のインスタンス以外のインスタンスを指定すると、そのインスタンスに、メモリーのパラメータ値の変更を通知するメッセージが送信されます。
USE_STORED_OUTLINES
は、システム・パラメータであり、初期化パラメータではありません。pfileまたはspfile内に設定することはできませんが、ALTER
SYSTEM
文とともに設定できます。このパラメータは、オプティマイザが実行計画を生成するためにストアド・パブリック・アウトラインを使用するかどうかを指定します。
TRUE
に設定すると、要求をコンパイルするときに、オプティマイザはDEFAULT
カテゴリのストアド・アウトラインを使用します。
FALSE
に設定すると、オプティマイザはストアド・アウトラインを使用しません。これはデフォルトです。
category_name
に設定すると、要求をコンパイルするときに、オプティマイザはcategory_name
カテゴリのストアド・アウトラインを使用します。
GLOBAL_TOPIC_ENABLED
は、システム・パラメータであり、初期化パラメータではありません。pfileまたはspfile内に設定することはできませんが、ALTER
SYSTEM
文とともに設定できます。このパラメータは、Oracle Streams AQで作成されたすべてのキューおよびトピックがLDAPサーバーに自動的に登録されるかどうかを指定します。GLOBAL_TOPIC_ENABLED
= TRUE
の場合、キュー表が作成、変更または削除されると、対応するLightweight Directory Access Protocol(LDAP)エントリも作成、変更または削除されます。
このパラメータは、Java Message Service(JMS)に対しても同様に機能します。LDAPを使用するようにデータベースが構成されており、GLOBAL_TOPIC_ENABLED
パラメータがTRUE
に設定されている場合、すべてのJMSキューおよびトピックは作成時にLDAPサーバーに自動的に登録されます。管理者は、LDAPに登録されたキューおよびトピックの別名を作成することもできます。LDAPに登録されたキューおよびトピックは、JNDIを介してキューまたはトピックの名前または別名を使用してルックアップできます。
インスタンスを起動すると、Oracle DatabaseはSHARED_SERVERS
およびDISPATCHERS
初期化パラメータの値に基づく共有サーバー・アーキテクチャの共有サーバー・プロセスおよびディスパッチャ・プロセスを作成します。ALTER
SYSTEM
文でSHARED_SERVERS
およびDISPATCHERS
パラメータを設定し、インスタンスの実行中に次の操作のいずれかを実行できます。
MAX_DISPATCHERS
によって指定される数まで作成できます。
この句によって、任意のインスタンスについて、インスタンスの起動に使用されたspfile内の初期化パラメータの設定を削除できます。SCOPE
=MEMORY
もSCOPE
=BOTH
も許可されません。SCOPE
= SPFILE
句は必須ではありませんが、構文を明確にするために含まれています。この句は単一インスタンス環境で使用できますが、pfileではなくspfileを使用してインスタンスが起動された場合のみです。
SID
句を使用すると、指定したインスタンスのspfileパラメータ設定を削除できます。RAC環境以外では、インスタンスは1つのみであるため、この句を省略できます。RAC環境では、この句を省略すると、デフォルトのSID = '*'
が使用されます。つまり、*.
parameter = value
形式のパラメータのすべての設定が削除されます。
参照:
|
次の文は、SCN 9356083のREDOログ・エントリを含むREDOログ・ファイル・グループを手動でアーカイブします。
ALTER SYSTEM ARCHIVE LOG CHANGE 9356083;
次の文は、メンバー'diskl:log6.log
'を含むREDOログ・ファイル・グループを、'diska:[arch$]
'という場所にあるアーカイブREDOログ・ファイルに手動でアーカイブします。
ALTER SYSTEM ARCHIVE LOG LOGFILE 'diskl:log6.log' TO 'diska:[arch$]';
次の文は、クエリー・リライトが明示的に使用禁止にされていないすべてのマテリアライズド・ビューに対するすべてのセッションで、クエリー・リライトを使用可能にします。
ALTER SYSTEM SET QUERY_REWRITE_ENABLED = TRUE;
たとえば、アプリケーションのメンテナンス中は、RESTRICTED
SESSION
システム権限が付与されているアプリケーション開発者のみがログインできるようにセッションを制限できます。このためには、次の文を発行します。
ALTER SYSTEM ENABLE RESTRICTED SESSION;
次に、ALTER
SYSTEM
文のKILL
SESSION
句を使用すると、既存のセッションをどれでも終了できます。
アプリケーションのメンテナンスが終了した後で、次の文を発行することによって、CREATE
SESSION
システム権限が付与されているユーザーもログインできるようになります。
ALTER SYSTEM DISABLE RESTRICTED SESSION;
次の文を使用すると、サーバー・ウォレットの情報をメモリーにロードして、データの透過的暗号化のマスター鍵を設定できます。
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "welcome1"; ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "welcome1";
これらの文では、セキュリティ・モジュールが初期化済で、パスワードwelcome1
を使用してウォレットが作成済であることを前提としています。
共有プールを消去してから、パフォーマンス分析を開始します。共有プールを消去する場合、次の文を発行します。
ALTER SYSTEM FLUSH SHARED_POOL;
次の文は、チェックポイントを強制的に発生させます。
ALTER SYSTEM CHECKPOINT;
次のALTER
SYSTEM
文は、リソース制限を動的に使用可能にします。
ALTER SYSTEM SET RESOURCE_LIMIT = TRUE;
次の文は、共有サーバー・プロセスの最小数を25に変更します。
ALTER SYSTEM SET SHARED_SERVERS = 25;
共有サーバー・プロセスの数が25より少ない場合は追加作成されます。共有サーバー・プロセスが25より多く、25あれば負荷を管理できる場合は、現行のコールによる処理が終了した時点で、25を超える分の共有サーバー・プロセスは終了します。
次の文は、TCP/IPプロトコルのディスパッチャ・プロセス数を5に、ipcプロトコルのディスパッチャ・プロセス数を10に動的に変更します。
ALTER SYSTEM SET DISPATCHERS = '(INDEX=0)(PROTOCOL=TCP)(DISPATCHERS=5)', '(INDEX=1)(PROTOCOL=ipc)(DISPATCHERS=10)';
TCPのディスパッチャ・プロセスの数が5より少ない場合、ディスパッチャ・プロセスが新しく作成されます。5より多い場合は、接続されているユーザーが接続を切断した後に、5を超える分のディスパッチャ・プロセスは終了します。
ipcのディスパッチャ・プロセスの数が10より少ない場合、ディスパッチャ・プロセスが新しく作成されます。10より多い場合は、接続されているユーザーが接続を切断した後に、10を超える分のディスパッチャ・プロセスは終了します。
これ以外のプロトコル用として既存ディスパッチャがある場合、この文は、そのディスパッチャの数に影響しません。
次の文は、インスタンスにおけるセッションの最大数を64に、セッションの警告しきい値を54に動的に変更します。
ALTER SYSTEM SET LICENSE_MAX_SESSIONS = 64 LICENSE_SESSIONS_WARNING = 54;
セッション数が54に達した場合、後続の各セッションのALERT
ファイルに警告メッセージが書き込まれます。RESTRICTED
SESSION
システム権限を持つユーザーも、後続セッションを開始する場合に、警告メッセージを受け取ります。
セッション数が64に達した場合、セッション数が再び64を下回るまでは、RESTRICTED
SESSION
システム権限を持つユーザー以外は新しいセッションを開始できません。
次の文は、インスタンスのセッションの最大数を動的に使用禁止にします。この文の実行後は、インスタンスのセッション数に制限がなくなります。
ALTER SYSTEM SET LICENSE_MAX_SESSIONS = 0;
次の文は、データベースのユーザー数の制限を200に動的に変更します。この文の実行後は、データベース・ユーザー数が200を超えることはありません。
ALTER SYSTEM SET LICENSE_MAX_USERS = 200;
書込み中のファイルの削除および名前の変更はできません。ただし、ログ・スイッチを強制的に発生させることによって、現行のREDOログ・ファイル・グループまたはそのメンバーの1つを削除したり、その名前を変更できます。強制的に発生したログ・スイッチは、インスタンスのREDOログ・スレッドのみに影響します。次の文は、ログ・スイッチを強制的に発生させます。
ALTER SYSTEM SWITCH LOGFILE;
次の文は、分散リカバリを使用可能にします。
ALTER SYSTEM ENABLE DISTRIBUTED RECOVERY;
デモンストレーションまたはテストの目的で、分散リカバリを使用禁止にする場合があります。次の文は、シングルプロセス・モードとマルチプロセス・モードの両方で分散リカバリを使用禁止にします。
ALTER SYSTEM DISABLE DISTRIBUTED RECOVERY;
デモンストレーションまたはテストが終了した場合、ALTER
SYSTEM
文にENABLE
DISTRIBUTED
RECOVERY
句を指定して実行すると、分散リカバリを再び使用可能にできます。
あるユーザーのセッションで、他のユーザーが必要とするリソースを使用している場合、そのユーザーのセッションを終了させる場合があります。このユーザーは、セッションが終了したことを示すエラー・メッセージを受け取ります。このユーザーは、新しいセッションを開始しないかぎり、このデータベースをコールできません。次のV$SESSION
動的パフォーマンス表のデータについて考えます。ここでは、ユーザーSYS
とoe
が両方ともセッションを開いているものとします。
SELECT sid, serial#, username FROM V$SESSION; SID SERIAL# USERNAME ---------- ---------- ------------------------------ 29 85 SYS 33 1 35 8 39 23 OE 40 1 . . .
次の文は、V$SESSION
のSID
値とSERIAL#
値を使用して、ユーザーscott
のセッションを終了します。
ALTER SYSTEM KILL SESSION '39, 23';
次の文は、V$SESSION
のSID
とSERIAL#
の値を使用して、ユーザーscott
のセッションを切断します。
ALTER SYSTEM DISCONNECT SESSION '13, 8' POST_TRANSACTION;
|
![]() Copyright © 1996, 2008, Oracle Corporation. All Rights Reserved. |
|