『Oracle Database SQL言語リファレンス』のこのリリースでの変更点

内容は次のとおりです。

Oracle Database 18cバージョン18.1での変更点

Oracle Database 18cバージョン18.1の『Oracle Database SQL言語リファレンス』で変更された点を次に示します。

新機能

このリリースの新機能は次のとおりです。

新機能

分析ビューの機能強化

  • 分析ビュー問合せでのファクトのフィルタ処理とメジャーの追加

    SELECT文のWITH句およびFROM句の構文により、分析ビューの問合せでの集計前にファクト・データをフィルタ処理し、問合せに含める新しい計算済メジャーを追加できるようになりました。

    「SELECT」を参照してください。

  • 分析ビューのメジャー式

    分析ビューの計算済メジャーで使用できる式に、次のファンクションが含まれるようになりました。

    • 階層ファンクション:

      HIER_CAPTION  HIER_DESCRIPTION  HIER_MEMBER_NAME
      HIER_DEPTH    HIER_LEVEL        HIER_MEMBER_UNIQUE_NAME
      
    • 分析ファンクションおよび集計ファンクション:

      APPROX_PERCENTILE  REGR_AVGX            STATS_MW_TEST
      APPROX_MEDIAN      REGR_AVGY            STATS_ONE_WAY_ANOVA
      CORR               REGR_COUNT           STATS_T_TEST_INDEP
      CORR_K             REGR_INTERCEPT       STATS_T_TEST_ONE
      CORR_S             REGR_SLOPE           STATS_T_TEST_PAIRED
      COUNT              REGR_R2              STATS_WSR_TEST
      COVAR_POP          REGR_SXX             STDDEV
      COVAR_SAMP         REGR_SXY             STDDEV_POP
      CUME_DIST          REGR_SYY             STDDEV_SAMP
      DENSE_RANK         STATS_BINOMIAL_TEST  STATS_MODE
      PERCENTILE_CONT    STATS_CROSSTAB       VAR_POP
      PERCENTILE_DISC    STATS_F_TEST         VAR_SAMP
      PERCENT_RANK       STATS_KS_TEST        VARIANCE
      RANK
      

    また、ウィンドウ・ファンクションで、任意のSQL集計ファンクションを使用できるようになりました。

    「分析ビュー式」を参照してください。

  • スノーフレーク・スキーマおよび非正規化ファクト表のサポート

    CREATE ATTRIBUTE DIMENSION文のJOIN PATHキーワードで、スノーフレーク・スキーマでの表の使用がサポートされます。

    CREATE ANALYTIC VIEW文のREFERENCES DISTINCTキーワードで、非正規化ファクト表の使用がサポートされます。

Data Guardスタンバイでのログに記録されないブロックの修正の自動化

STANDBY NOLOGGINGは、ロギングなしで実行できる操作をログに記録しないことと、この操作によって作成されたデータ・ブロックをData Guard構成内の資格のある各スタンバイ・データベースに送信することを、データベースに対して指示します。通常、この結果それらのスタンバイに無効なブロックがなくなります。

ロード・パフォーマンスまたはデータの可用性のためにスタンバイ・ロギングなしを設定できる文を次に示します。

  • ALTER DATABASE

  • ALTER PLUGGABLE DATABASE

  • CREATE DATABASE

  • CREATE CONTROLFILE

スキーマ専用アカウントを作成する機能

CREATE USER文でNO AUTHENTICATION句を使用すると、ログイン時にパスワードによる外部認証を必要としないユーザー・アカウントを作成できます。既存のユーザー・アカウントからパスワードによる外部認証を削除するには、この句をALTER USER文で使用する必要があります。

シャドウ消失書込み保護

シャドウ消失書込み保護は、消失書込みを迅速に検出して即時に対応し、データベースでデータ破損が原因で発生する可能性のあるデータ損失を最小限に抑えます。この機能は、シャドウ表領域と呼ばれる消失書込みレコードの記憶域を作成します。表領域、データベースまたはデータ・ファイルに対してシャドウ消失書込み保護を有効にするときに、Oracle Data Guardスタンバイ・データベースを必要としません。

lost_write_protection句は次の文で使用できます。

  • CREATE TABLESPACE

  • ALTER TABLESPACE

  • DROP TABLESPACE

  • ALTER DATABSAE

  • ALTER PLUGGABLE DATABASE

データバインドされた照合のサポート

表のパーティション化キー列に、任意の宣言された照合を使用できるようになりました。以前のOracle Databaseリリースでは、表のパーティション化キー列は、BINARYUSING_NLS_COMPUSING_NLS_SORTUSING_NLS_SORT_CS照合のみを使用するように制限されていました。現在では、表のパーティション化キー列に対して大/小文字が区別されない照合を宣言することで、大/小文字を区別せずに文字値を使用して表をパーティション化できます。

プライベート一時表

プライベート一時表は、トランザクションまたはセッションの終了時点で自動的に削除される一時データベース・オブジェクトです。プライベート一時表はメモリーに格納され、それを作成したセッションでのみ表示されます。これにより、アプリケーション開発者はより柔軟に作業でき、コードのメンテナンスが容易になり、すぐに利用できる機能が向上します。

プライベート一時表を作成するには、CREATE TABLE文でPRIVATE TEMPORARYを使用します。プライベート一時表の有効範囲を定義するには、ON COMMIT句とともにtransactionまたはsessionのいずれかを使用します。

シャーディング・スケール・クラスタ

Oracle RACシャーディングは、表パーティションのアフィニティをOracle RACインスタンスに設定します。アフィニティにより、データの個別のサブセットが各インスタンスに割り当てられるように、データが複数のRACインスタンスに論理的にパーティション化されます。データ依存型ルーティングでRACデータベースに対するキャッシュ・アフィニティを提供できるようにするには、ALTER SYSTEM文でaffinity_clausesを使用します。シャーディング・キーを使用してデータがアクセスされると、要求は、データの対応するサブセットを保持しているインスタンスにルーティングされます。アフィニティには次の利点があります。

  • シャード認識アプリケーションのシャード・アクセス、および非シャード・アプリケーションの透過性

  • キャッシュの使用の効率化およびブロックのpingの減少。

Active DirectoryサービスとOracle Databaseの統合

このリリース以降、Microsoft Active Directoryで直接ユーザーを認証および認可できるようになりました。ディレクトリ・サービスとの直接統合により、エンタープライズ・アイデンティティ管理アーキテクチャを使用した高速かつ容易な構成によってセキュリティが強化されます。これまでは、複雑さと難しさの点から、ユーザーはデータベースとディレクトリ・サービスの統合というセキュリティ上の措置を避けてきた可能性があります。直接統合により、エンタープライズ・ディレクトリ・サービスへのデータベースの統合が容易になり、セキュリティ・ポスチャが向上します。

ディレクトリ・グループをグローバル・ロールにマップするには、ALTER ROLE文にGLOBALLY AS句を指定します。

ユーザー定義のシャーディング方法

Oracle Shardingのユーザー定義のシャーディング方法では、LISTまたはRANGEに基づいてパーティション計画を定義し、個々のシャードへのデータのマッピングを明示的に指定できます。

ユーザー定義のシャーディングを使用するのは、パフォーマンスや法規制などの理由から特定のデータを特定のシャードに格納する必要があり、かつシャード間のデータの移行を完全に制御する必要がある場合です。ユーザー定義のシャーディングにより、シャードの予定されている停止または予定外の停止の際に、使用できないデータを正確に把握することもできます。ユーザー定義のシャーディングでは、シャード間のデータとワークロードの分散を監視し、バランスのとれた分散を維持する必要があります。

各プラガブル・データベースのキーストアを作成する機能

各PDBキーストアには独自のパスワードと独自のマスター暗号化キーを設定できます。この設計により、PDB間の分離が強化されます。また、マルチテナント環境で各テナント(PDB)がそれぞれ個別にキー管理操作を行うことができ、CDBルート・レベルでキーストアを共有する必要がありません。この機能にはキーストアの場所とタイプを容易に構成できるパラメータがあり、sqlnet.oraファイルを編集する必要がなくなるので、マルチテナント環境と非マルチテナント環境の両方に役立ちます。

ADMINISTER KEY MANAGEMENT文が2種類のモード(isolatedおよびunited)により拡張されました。

データ・ディクショナリで機密性の高い資格証明データを暗号化する機能

このリリース以降、データ・ディクショナリのSYS.LINK$およびSYS.SCHEDULER$_CREDENTIALシステム表に格納されている機密性の高い資格証明データを暗号化できるようになりました。

このリリースおよび以前のリリースでは、これらの表のデータは不明瞭化されています。ただし、インターネットで使用可能な不明瞭化解除アルゴリズムが増加している状況から、よりセキュアなソリューションを使用してこのような機密データを保護することが重要です。このデータは、ALTER DATABASE DICTIONARY文を使用して手動で暗号化できます。

ユーザー定義のマスター暗号化キーを作成する機能

このリリースでは、ユーザー定義のマスター暗号化キー(BYOキー)を作成する機能が追加されました。

ユーザー定義のキーを作成するには、マスター暗号化キーの作成時に独自のマスタ・キー識別値を指定します。ADMINISTER KEY MANAGEMENT SET [ENCRYPTION] KEY文またはADMINISTER KEY MANAGEMENT CREATE [ENCRYPTION] KEY文を使用できます。この機能強化は、ソフトウェア・キーストアで使用されるマスター暗号化キーのみに適用され、ハードウェア・キーストアで使用されるキーには適用されません。これは、非マルチテナント環境、スタンドアロン環境およびマルチテナント環境で使用できます。

Unicode 9.0のサポート

この機能強化により、Oracle Databaseは最新バージョンのUnicode規格に準拠するようになりました。

標準冗長性または高冗長性ディスク・グループからフレックス・ディスク・グループへのマウント制限なしでの変換

従来のディスク・グループ(Oracle ASMリリース18cより前に作成されたディスク・グループ)を、MOUNTED RESTRICTEDオプションを使用せずにOracle ASMのフレックス・ディスク・グループに変換できます。

カスケード・オプションを使用したOracle ASMファイル・グループの削除

空でないファイル・グループおよびその関連ファイルを削除するには、CASCADEキーワードを指定したALTER DISKGROUP ... DROP FILEGROUP文を使用します。

Oracle ASMフレックス・ディスク・グループでのマルチテナント・クローニングのサポート

マルチテナント環境でコンテナ・データベースまたはプラガブル・データベースのOracle ASMミラー・クローンを作成できます。この機能をサポートするため、Oracle ASMファイル・グループのプロパティと、CREATE DATABASE文およびCREATE PLUGGABLE DATABASE文が拡張されました。

パーティション計画の変更

標準の(ヒープ構成)表のパーティション計画を変更するには、ALTER TABLE MODIFY PARTITION SQL文を使用します。ハッシュ・パーティション化からレンジ・パーティション化への変更などのパーティション計画の変更は、オフラインまたはオンラインで実行できます。索引は、表の変更の一部として保持されます。変換をオンライン・モードで実行する場合、進行中のDML操作には影響しません。

パーティションおよびサブパーティションのオンラインでのマージ

標準の(ヒープ構成)表のオンライン・マージ操作を有効にし、実行中のパーティション・マージ操作と同時にデータ操作言語(DML)操作を実行するには、ALTER TABLE MERGE PARTITION文およびALTER TABLE MERGE SUBPARTITION文でONLINEキーワードを使用します。

インライン外部表

インライン外部表により、外部表の実行時定義をSQL文の一部にできるため、データ・ディクショナリで外部表を永続データベース・オブジェクトとして作成する必要がなくなります。

SELECT文のquery_table_expression句に、2つの新しい句(inline_external_tableおよびmodified_external_table)が追加されました。

シャード・データベースの診断性および管理性の集中化

新しいSHARDS句により、ユーザーは中央のシャード・カタログから、すべてのシャード上のOracle提供オブジェクト(V$DBA/USER/ALLビューおよびディクショナリ表など)を問い合せることができます。SHARDS句を含む問合せは、シャード・カタログ・データベースに対してのみ実行できます。

SHARDS句は、SELECT文のtable_reference句の一部です。

Memoptimized Rowstore

Memoptimized Rowstoreにより、主キー列に基づいて表を頻繁に問い合せるInternet of Things (IoT)などのアプリケーションのデータ問合せパフォーマンスが向上しました。

高速検索を有効にするには、ALTER TABLE文およびCREATE TABLE文でmemoptimize_read_clauseを指定します。

Database In-Memoryでの外部表のサポート

インメモリー列ストア(IM列ストア)では外部表への移入がサポートされており、ユーザーは高度な分析問合せを外部データ・ストアに対して実行できます。この機能は、Oracle Database In-Memoryのパフォーマンス機能を利用し、外部ストレージへの不必要なアクセスを回避するため、外部データに対して繰り返し実行される問合せで特に役立ちます。

CREATE TABLE文の新しいinmemory_table_clauseを使用できます。

上位N番までの近似問合せ処理

近似問合せ処理を使用することで、既存の分析ワークロードのパフォーマンスを即時に向上させ、迅速なアドホックデータ探索が可能になります。

3つの新しいファンクションが追加されました。

  • APPROX_COUNT

  • APPROX_SUM

  • APPROX_RANK

JSON向けのSQLの機能強化

データベースでのJSONデータの格納と問合せに関する複数のSQL機能強化が導入されました。

  • TREAT (... AS JSON)では、特定のSQL式からの戻り値をJSONデータとして処理することを指定できます。このような式には、SQL WITH句で指定する列とPL/SQLファンクション・コールを含めることができます。新しいデータガイド・ビューでは、JSONフィールドのパスと型の情報(索引に基づくデータ・ガイドについて記録された情報)に容易にアクセスできます。生成された問合せ対象のJSONデータをLOBインスタンスで戻すことで、リレーショナル・データの使用範囲が広がります。

  • SQL/JSON問合せファンクションおよび生成ファンクションは、結果をLOBデータとして戻すことができます。

  • SQL/JSON生成ファンクションは様々なSQLデータ型の入力を受け入れ、また任意で整形式のJSONデータを戻すことを必須にできます。

  • SQL/JSONパス式では、特定のSQLデータ型に変換できないデータをフィルタするために、追加のアイテム・メソッドを使用できます。アイテム・メソッドを使用できるSQL/JSONファンクションが増え、またアイテム・メソッドはLOBデータを戻すことができます。

  • データ・ディクショナリ・ビューを使用して、データ・ガイドに対応したJSON検索索引に記録されているJSONフィールドのパスおよび型の情報を抽出できます。

  • SQL/JSONファンクションJSON_TABLEでは、よりシンプルな構文(フィールドへアクセスするためのドット表記法構文)と、予測される列の自動ネーミングがサポートされています。JSON_TABLEを使用して作成されるマテリアライズド・ビューは自動的に同期できます。

永続不可のデータ型

永続不可のデータ型によりSQLデータ型が拡張され、型属性の定義時にPL/SQLデータ型を使用できるようになりました。これらのグループによって作成されたSQLデータ型は、ディスクに永続化できないことを確認してください。この機能を使用すると、アップグレードおよびダウングレードをスムーズに実行できます。

CREATE TYPE文は、永続不可のデータ型のルールと制限事項を記述します。

PDBロックダウン・プロファイルの機能強化

この機能は、PDBのプロビジョニングで強制的なセキュリティと分離を必要とする環境で役立ちます。このリリースでは、PDBロックダウン・プロファイルの様々な機能拡張が導入されました。

  • アプリケーション・ルートとCDBルートでPDBロックダウン・プロファイルを作成できるようになりました。以前のリリースでは、プロファイルが作成できるのはCDBルートのみでした。アプリケーション・コンテナでPDBロックダウン・プロファイルを作成できるため、アプリケーション・コンテナに関連付けられているアプリケーションへのアクセスをより細かく制御できます。

  • 別のPDBロックダウン・プロファイル(静的ベース・プロファイルまたは動的ベース・プロファイルのいずれか)に基づくPDBロックダウン・プロファイルを作成できるようになりました。今後ベース・プロファイルに対して行われる変更を、このベース・プロファイルを使用して新規に作成されるプロファイルに反映するかどうかを制御できます。

新しい機能強化が含まれている文を次に示します。

  • CREATE LOCKDOWN PROFILE

  • ALTER LOCKDOWN PROFILE

  • DROP LOCKDOWN PROFILE

ランナウェイ問合せの手動での終了

この機能により、データベース管理者はALTER SYSTEM CANCEL SQL文を使用して、ランナウェイSQL問合せを終了できます。これにより、ランナウェイSQL問合せが消費していたシステム・リソースが解放され、他のSQL問合せがそれらを使用できるようになります。

CDBフリートを使用したクラウド規模でのPDBの管理

CDBフリートとは、1つの論理CDBとして管理するCDBの集合です。リードCDBは、フリート内のCDBを監視および管理するための中央ロケーションです。フリートの構成後に、様々なCDBからのPDB情報がリードCDBと同期されます。リードCDBでフリート内のすべてのPDBにアクセスできるようになったため、これらのPDBは、リードCDBに含まれている場合と同様に管理できます。

CDB内のPDBの数の上限は4096個です。CDBフリートを構成することで、1つのリードCDB内で大量のPDBにアクセスできます。この方法では、運用コストを削減し、クラウド規模のアプリケーションの管理におけるリスクを最小限に抑えます。

ALTER DATABASE文を使用してCDBフリートを構成できます。

PDBスナップショット・カルーセル

PDBスナップショットは、特定の時点におけるPDBの名前付きコピーです。PDBがPDBスナップショットに対応している場合は、最大8個のスナップショットを作成できます。スナップショットの集合をスナップショット・カルーセルと呼びます。

PDBスナップショット・カルーセルは、PDBの最新コピーが含まれており頻繁に更新されるライブラリを維持する場合に便利です。カルーセル内の任意のスナップショットのPoint-in-TimeリカバリまたはPoint-in-Timeクローニングを実行できます。たとえば、毎朝午前00:01にPDBのスナップショットを取得する場合は、スナップショットをリストアし、過去1週間以内の任意のタイムスタンプまたはSCNにロール・フォワードできます。

PDBスナッププショットを作成および管理するには、ALTER PLUGGABLE DATABASE文でsnapshot_clausesを使用します。

非推奨となった機能

次の機能は、このリリースでは非推奨であり、将来のリリースではサポートされなくなる可能性があります。

  • ブール型のJSON値を数値(0または1)として戻すSQL/JSONファンクション。この機能は今後サポート終了となる予定です。サポートが終了すると、JSON値(TrueまたはFalse)としてNUMBERが戻されるとエラーになります。

  • Oracle Multimediaは、Oracle Databaseリリース18cで非推奨になり、将来のリリースでサポート終了となる可能性があります。できるだけ早く、非推奨となった機能の使用を停止することをお薦めします。Oracle Multimediaの代替となる機能はありません。Oracle Multimediaのかわりに、メタデータの抽出、イメージ処理および変換を行うサードパーティ製品とOracle SecureFilesを使用することをお薦めします。

サポート対象外機能

18cバージョン18.1のサポート対象外の機能の一覧については、『Oracle Databaseアップグレード・ガイド』を参照してください。

Oracle Database 12cリリース2 (12.2.0.1)での変更

Oracle Database 12cリリース2 (12.2.0.1)のOracle Database SQL言語リファレンスで変更された点を次に示します。

新機能

このリリースの新機能は次のとおりです。

長い識別子

多くのデータベース・オブジェクト名の最大長が、30バイトから128バイトに拡大されました。

「データベース・オブジェクトのネーミング規則」を参照してください。

データ・バインドされた照合および大/小文字を区別しないデータベース

データ・バインドされた照合を使用すると、列レベルで文字の比較規則を宣言できます。列に対して宣言された照合は、その列を参照する、すべての照合依存のSQL操作に自動的に適用されます。これにより、言語固有の比較規則を必要とするデータに、これらの規則を一貫して適用できます。また、データ・バインドされた照合では、表またはスキーマに対して大/小文字を区別しない照合を宣言することもできるため、表またはスキーマのすべての列を大/小文字を区別しない方法で比較できます。これにより、大/小文字を区別しないデータベースを作成できます。

「データ・バインドされた照合」を参照してください。

新しいSQL文が導入される機能

次の機能では、新しいSQL文が導入されます。

ADMINISTER KEY MANAGEMENTの機能強化

ALTER SESSIONの機能強化

  • CDBの別のコンテナに切り替える場合、新しいコンテナで使用するサービスを指定できます。

    新しい句「SERVICE」を参照してください。

AUDITとNOAUDIT (統合監査)の機能強化

  • 特定のロールが直接付与されているユーザーに対して統合監査ポリシーを有効または無効にできます。

    AUDITおよびNOAUDITの新しい句「by_users_with_roles」を参照してください。

CREATE DATABASEとALTER DATABASEの機能強化

  • 使用しているデータベースのローカル一時表領域を指定できます。

    CREATE DATABASE「default_temp_tablespace」句およびALTER DATABASE「DEFAULT [LOCAL] TEMPORARY TABLESPACE句」を参照してください。

  • CDBにローカルUNDOモードまたは共有UNDOモードを指定できます。

    CREATE DATABASEの新しい「undo_mode_clause」およびALTER DATABASE「undo_mode_clause」を参照してください。

  • Oracle Real Application Clusters (Oracle RAC)またはOracle RAC One Nodeのデータベースでは、REDO Applyが使用するフィジカル・スタンバイのインスタンスの数を制御できます。

    ALTER DATABASEの新しい句「USING INSTANCES」を参照してください。

  • 透過的データ暗号化(TDE)を使用してデータファイルの暗号化または復号化をオフラインで実行できます。

    ALTER DATABASEの新しい句「ENCRYPT | DECRYPT」を参照してください。

CREATE DIRECTORYの機能強化

  • アプリケーション共通オブジェクトであるディレクトリを作成できます。アプリケーション共通オブジェクトは、アプリケーション・コンテナ内のアプリケーションPDBで共有できます。

    CREATE DIRECTORYの新しい句「SHARING」を参照してください。

CREATE DISKGROUPとALTER DISKGROUPの機能強化

  • 割当て制限グループおよびファイル・グループをサポートするOracle ASMフレックス・ディスク・グループを作成できます。フレックス・ディスク・グループでは、ディスク・グループ内のデータベース・グループのファイルに対する割当て制限を定義できます。

    参照:

  • アクティブなディスク・グループのリバランス操作を一時停止および再開したり、その能力を変更することができます。また、リバランス操作のどのフェーズを実行するかを指定することもできます。

    ALTER DISKGROUP「rebalance_diskgroup_clause」を参照してください。

  • 次の新しいOracle ASMディスク・グループ属性は、表13-2に一覧が示されています。

    • LOGICAL_SECTOR_SIZEでは、ディスク・グループの論理セクター・サイズを設定できます。

    • PREFERRED_READ.ENABLEDでは、Oracle拡張クラスタのディスク・グループに対して優先読取り機能を有効にするかどうかを指定できます。

CREATE INDEX、ALTER INDEXおよびDROP INDEXの機能強化

  • 索引の作成中、索引の再構築中、索引にUNUSABLEのマークを付けているとき、または索引の削除中に、依存カーソルを無効化するかどうかを指定できます。

    CREATEINDEXALTERINDEXおよびDROPINDEXの新しい句「{ DEFERRED | IMMEDIATE } INVALIDATION」を参照してください。

  • 拡張索引圧縮では、HIGH圧縮レベルを提供します。

    CREATE INDEX「advanced_index_compression」句の新しい「HIGH」キーワードを参照してください。

CREATE JAVAの機能強化

  • アプリケーション共通オブジェクトであるJavaスキーマ・オブジェクトを作成できます。アプリケーション共通オブジェクトは、アプリケーション・コンテナ内のアプリケーションPDBで共有できます。

    CREATE JAVAの新しい句「SHARING」を参照してください。

CREATE MATERIALIZED VIEWとALTER MATERIALIZED VIEWの機能強化

  • リアルタイムのマテリアライズド・ビューでは、データ変更によりマテリアライズド・ビューがその実表と同期していない場合も、ユーザーの問合せに対して最新のデータを提供します。

    CREATEMATERIALIZEDVIEWおよびALTERMATERIALIZEDVIEWの新しい句「{ ENABLE | DISABLE } ON QUERY COMPUTATION」を参照してください。

  • ON STATEMENTリフレッシュ・モードでは、マテリアライズド・ビューの実表のいずれかでDML操作が実行されるたびに、自動リフレッシュが発生します。

    CREATE MATERIALIZED VIEWの新しい「ON STATEMENT句」を参照してください。

CREATE PLUGGABLE DATABASEとALTER PLUGGABLE DATABASEの機能強化

  • アプリケーション・コンテナは、1つ以上のアプリケーションのデータを格納するCDBのコンポーネントです。これは、アプリケーション・ルート、オプションのアプリケーション・シードおよびアプリケーションPDBで構成されます。

    CREATE PLUGGABLE DATABASEの新しい句「AS APPLICATION CONTAINER」および「AS SEED」を参照してください。

  • アプリケーション・コンテナで次の操作を実行できます。

    • アプリケーションのインストール、パッチ適用、アップグレードおよびアンインストール

    • アプリケーション・バージョンおよびパッチ番号の登録

    • アプリケーション・ルートとアプリケーションPDBの間でアプリケーションの同期を維持

    ALTER PLUGGABLE DATABASEの新しい「application_clauses」を参照してください。

  • PDBのクローニング時にリフレッシュ可能PDBを作成できます。ソースPDBの変更は、リフレッシュ可能PDBに手動または自動で伝播できます。

    CREATE PLUGGABLE DATABASEの新しい「pdb_refresh_mode_clause」およびALTER PLUGGABLE DATABASEの新しい句「REFRESH」および「pdb_refresh_mode_clause」を参照してください。

  • プロキシPDBは、異なるCDB内のPDBを参照し、参照先PDBへのフル機能アクセスを提供します。

    CREATE PLUGGABLE DATABASEの新しい句「AS PROXY FROM」および「HOSTおよびPORT」を参照してください。

  • CDB間でPDBを再配置できます。

    CREATE PLUGGABLE DATABASEの新しい句「RELOCATE」を参照してください。

  • PDBをクローニングする場合、記憶域スナップショットを使用して表領域をクローニングするか、表領域のデータではなく、表領域のデータ・モデル定義をクローニングするようデータベースに指示できます。

    CREATE PLUGGABLE DATABASEの新しい句「{ SNAPSHOT COPY | NO DATA }」を参照してください。

  • PDBを接続する場合、表領域のファイルを新しい場所にコピーまたは移動するようデータベースに指示できます。

    CREATE PLUGGABLE DATABASEの新しい句「{ COPY | MOVE | NOCOPY }」を参照してください。

  • 以前のリリースでは、シードからPDBを作成する場合のみ、デフォルトの永続表領域を指定できました。PDBのクローニング時またはPDBの接続時にもデフォルトの永続表領域を指定できるようになりました。

    CREATE PLUGGABLE DATABASE「default_tablespace」句を参照してください。

  • パラレル実行サーバーを使用して、新しいPDBのデータファイルを新しい場所にコピーできます。これにより、PDBの作成が高速化されることがあります。

    CREATE PLUGGABLE DATABASEの新しい「parallel_pdb_creation_clause」を参照してください。

CREATE PROFILEとALTER PROFILEの機能強化

  • プロファイルでは、アカウントがロックされるまでの連続非ログイン日数の許容値を指定できます。

    CREATE PROFILEおよびALTER PROFILEの新しい「INACTIVE_ACCOUNT_TIME」の設定を参照してください。

CREATE RESTORE POINTの機能強化

CREATE SEQUENCEの機能強化

  • アプリケーション共通オブジェクトである順序を作成できます。アプリケーション共通オブジェクトは、アプリケーション・コンテナ内のアプリケーションPDBで共有できます。

    CREATE SEQUENCEの新しい句「SHARING」を参照してください。

CREATE SYNONYMの機能強化

  • アプリケーション共通オブジェクトであるシノニムを作成できます。アプリケーション共通オブジェクトは、アプリケーション・コンテナ内のアプリケーションPDBで共有できます。

    CREATE SYNONYMの新しい句「SHARING」を参照してください。

CREATE TABLEとALTER TABLEの機能強化

  • パーティション化された外部表を作成できます。

    CREATE TABLE「external_table_clause」およびALTER TABLE「alter_external_table」句を参照してください。

  • 外部表に制約を指定できます。

    「外部表の制約」を参照してください。

  • リスト・パーティション表には、最大16のパーティション化キー列を指定でき、リスト・サブパーティション化を使用するコンポジット・パーティション表には、最大16のサブパーティション化キー列を指定できます。以前のリリースでは、1つのパーティション化キー列または1つのサブパーティション化キー列のみを指定できました。

    CREATE TABLEおよびALTER TABLE「list_values_clause」を参照してください。

  • 自動リスト・パーティション表を作成できます。このタイプの表では、データベースで必要に応じて追加のリスト・パーティションを作成できます。

    CREATE TABLEの新しい句「AUTOMATIC」および「ALTER TABLE」の「alter_automatic_partitioning」を参照してください。

  • 非パーティション表をパーティション表に変更できます。

    ALTER TABLEの新しい句「modify_to_partitioned」を参照してください。

  • 既存のパーティション表の構造に一致する表を作成できます。これら2つの表は、パーティションとサブパーティションの交換に適格となります。

    CREATE TABLEの新しい句「FOR EXCHANGE WITH TABLE」を参照してください。

  • 次の操作中に保持する行を指定できます。表パーティションまたはサブパーティションの移動、分割またはマージ、表の移動またはパーティション表への非パーティション表の変換。

    ALTER TABLEの新しい句「filter_condition」を参照してください。

  • 表、パーティションまたはサブパーティションには読取り専用モードを指定できます。

    CREATE TABLEおよびALTER TABLEの新しい「read_only_clause」を参照してください。

  • 表のパーティションおよびサブパーティションの分割中に、表に対するDML操作が許可されます。

    ALTER TABLE「split_table_partition」句および「split_table_subpartition」句の新しい「ONLINE」キーワードを参照してください。

  • 同時のDML操作をブロックせずに、オンライン操作として非パーティション表を移動できます。表移動操作は、移動の一環として自動索引メンテナンスもサポートします。

    ALTER TABLE「move_table_clause」を参照してください。

  • 表パーティションのメンテナンス操作の実行中に、依存カーソルを無効にするかどうかを指定できます。

    ALTER TABLEの新しい句「{ DEFERRED | IMMEDIATE } INVALIDATION」を参照してください。

  • アプリケーション共通オブジェクトである表を作成できます。アプリケーション共通オブジェクトは、アプリケーション・コンテナ内のアプリケーションPDBで共有できます。

    CREATE TABLEの新しい句「SHARING」を参照してください。

  • 表の列の暗号化では、追加のアルゴリズムARIA192ARIA256GOST256およびSEED128がサポートされています。

    CREATE TABLEおよびALTER TABLE「encryption_spec」句を参照してください。

  • 表にデフォルトのインメモリー列ストア(IM列ストア)設定を指定する場合、IM列ストアへの表の移入に適格となるOracle RACインスタンスまたはOracle Active Data Guardインスタンスを指定できます。

    CREATE TABLEおよびALTER TABLEの新しい句「FOR SERVICE」を参照してください。

  • IM列ストアの表を有効化、無効化または再圧縮する自動データ最適化ポリシーを作成できます。

    CREATE TABLEおよびALTER TABLEの新しい句「ilm_inmemory_policy」を参照してください。

  • 自動データ最適化圧縮ポリシーでは、追加の圧縮方法COLUMN STORE COMPRESS FOR QUERYがサポートされています。

    CREATE TABLEおよびALTER TABLE「ilm_compression_policy」句を参照してください。

CREATE TABLESPACEとALTER TABLESPACEの機能強化

  • 表領域の暗号化の機能強化: オフライン表領域およびオンライン表領域を暗号化できます。UNDO表領域、一時表領域、SYSTEM表領域およびSYSAUX表領域を暗号化できます。表領域の暗号化では、追加のアルゴリズムARIA192ARIA256GOST256およびSEED128がサポートされています。

    CREATE TABLESPACEの新しい「tablespace_encryption_clause」およびALTER TABLESPACEの新しい句「alter_tablespace_encryption」を参照してください。

  • ローカル一時表領域を作成でき、これはOracle Real Application ClustersおよびOracle Flex Clustersで役立ちます。これらには、各データベース・インスタンスの共有されない個別の一時ファイルが格納され、I/Oパフォーマンスが向上します。

    CREATE TABLESPACE「temporary_tablespace_clause」の新しい句LOCAL TEMPORARY TABLESPACEを参照してください。

  • 表領域のデフォルトの索引圧縮方法を指定できます。

    CREATE TABLESPACEの新しい句「default_index_compression」およびALTER TABLESPACE「default_tablespace_params」句を参照してください。

  • Oracle Databaseの以前のリリースでは、表領域のデフォルトの表圧縮方法を指定できました。これは、Oracle Database 12cリリース2 (12.2)でも可能ですが、構文にTABLEキーワードを含めて、新しいデフォルトの索引圧縮構文と区別するようになりました。

    CREATE TABLESPACEの新しい句「default_table_compression」およびALTER TABLESPACE「default_tablespace_params」句を参照してください。

CREATE USERとALTER USERの機能強化

  • ユーザーにローカル一時表領域を割り当てることができます。

    CREATEUSERおよびALTERUSERTEMPORARY TABLESPACE句の新しいLOCALキーワードを参照してください。

CREATE VIEWの機能強化

  • アプリケーション共通オブジェクトであるビューを作成できます。アプリケーション共通オブジェクトは、アプリケーション・コンテナ内のアプリケーションPDBで共有できます。

    CREATE VIEWの新しい句「SHARING」を参照してください。

FLASHBACK DATABASEの機能強化

  • PDBをフラッシュバックできます。

    FLASHBACK DATABASEの新しい句「PLUGGABLE」を参照してください。

SELECTの機能強化

  • SELECT文のFROM句のquery_table_expression句では、副問合せで階層または分析ビューを使用できるようになりました。

    SELECT「query_table_expression」句を参照してください。

新しい演算子

  • 新しいCOLLATE演算子は、式の照合を決定します。この演算子を使用すると、式に対してデータベースが標準の照合導出ルールを使用して導出した照合を上書きできます。

    「COLLATE演算子」を参照してください。

新しい式と強化された式

  • 新しい分析ビュー式は、分析ビューの計算済メジャーを定義します。

    「分析ビュー式」を参照してください。

  • JSONオブジェクト・アクセス式は、JSON配列の特定の要素にアクセスできるように強化されました。

    「JSONオブジェクト・アクセス式」array_step句を参照してください。

強化された条件

  • JSON_EXISTS条件を使用して、パス式に値を渡すことができるようになりました。

    JSON_EXISTSの新しい句「JSON_passing_clause」を参照してください。

新しいファンクションと強化されたファンクション

  • 近似問合せ処理ファンクション

    次の新しいファンクションは、正確な結果とわずかに誤差がある、おおよその結果を戻します。

    • APPROX_MEDIANでは、数値または日時値を取得し、おおよその中央値を戻します。

    • APPROX_PERCENTILEでは、パーセンタイル値およびソート指定を取得し、そのソート指定に従ってそのパーセンタイル値に該当する値を戻します。

    次の新しいファンクションでは、個別値の近似カウントに対して、マテリアライズド・ビュー・ベースのサマリー集計方法がサポートされています。

    • APPROX_COUNT_DISTINCT_DETAILは、式に対して個別値を含む行の概数に関する情報を計算して、詳細と呼ばれるBLOB値を戻し、ここにはその情報が特殊な形式で含まれます。

    • APPROX_COUNT_DISTINCT_AGGでは、その入力として、個別値の近似カウントに関する情報を含む詳細の列を取得し、これらのカウントの集計を実行できます。

    • TO_APPROX_COUNT_DISTINCTでは、その入力として、個別値の近似カウントに関する情報を含む詳細を取得し、これをNUMBER値に変換します。

    次の新しいファンクションでは、近似パーセンタイル値に対してマテリアライズド・ビュー・ベースのサマリー集計方法がサポートされています。

    • APPROX_PERCENTILE_DETAILは、値について近似パーセンタイル情報を計算して、詳細と呼ばれるBLOB値を戻し、ここにはその情報が特殊な形式で含まれます。

    • APPROX_PERCENTILE_AGGでは、その入力として、近似パーセンタイル情報を含む詳細の列を取得し、該当する情報の集計を実行できます。

    • TO_APPROX_PERCENTILEでは、その入力として、近似パーセンタイル情報を含む詳細、パーセンタイル値およびソート指定を取得し、そのソート指定に従ってそのパーセンタイル値に該当するおおよその値を戻します。

  • 照合ファンクション

    次の新しいファンクションは、照合設定の情報を戻します。

    • COLLATIONは、式に対して導出された照合の名前を戻します。

    • NLS_COLLATION_IDでは、引数として照合名を取得し、対応する照合ID番号を戻します。

    • NLS_COLLATION_NAMEでは、引数として照合ID番号を取得し、対応する照合名を戻します。

  • 変換ファンクション

    次の変換ファンクションでは、変換エラーが発生した場合に戻す値を指定できるようになりました。

    次の新しいファンクションでは、指定されたデータ型に式を変換できるかどうかを判断できます。

    次の新しいファンクションでは、追加のデータ型をBLOB、文字およびCLOB値に変換できます。

    • TO_BLOB (bfile)は、BFILE値をBLOB値に変換します。

    • TO_CHAR (bfile|blob)は、BFILEデータまたはBLOBデータをデータベース文字セットに変換します。

    • TO_CLOB (bfile|blob)は、BFILEデータまたはBLOBデータをデータベース文字セットに変換し、このデータをCLOB値として戻します。

  • データ・マイニング・ファンクション

    データ・マイニング・ファンクションは、Oracleのネイティブ・アルゴリズムを使用して構築されたモデル、およびOracle Advanced Analyticsの拡張メカニズムを介したRを使用して構築されたモデルに適用できるように強化されました。「データ・マイニング・ファンクション」を参照してください。

    新しいデータ・マイニング・ファンクションを次に示します。

    • FEATURE_COMPAREは、特徴抽出モデルを使用して、異なる2つの文書を比較します。

    • ORA_DM_PARTITION_NAMEは、入力行に関連付けられているパーティションの名前を戻します。

    次のファンクションの構文は、パーティション化されたモデルをスコアリングするときに、ファンクションがGROUPINGヒントを使用できるように強化されました。

  • JSONファンクション

    次の新しいファンクションでは、JavaScript Object Notation (JSON)データを問い合せおよび生成できます。

    • JSON_ARRAYでは、その入力として、1つ以上のSQL式を取得し、各式をJSON値に変換して、これらのJSON値を含むJSON配列を戻します。

    • JSON_ARRAYAGGでは、その入力として、SQL式の列を取得し、各式をJSON値に変換して、これらのJSON値を含む単一のJSON配列を戻します。

    • JSON_DATAGUIDEでは、その入力として、JSONデータの表の列を取得します。列の各行は、JSONドキュメントと呼ばれます。このファンクションは、列のJSONドキュメントごとに、そのJSONドキュメントのフラット・データ・ガイドを含むCLOB値を戻します。

    • JSON_OBJECTでは、その入力として、1つ以上のプロパティのキーと値のペアを取得し、これらのキーと値の各ペアのオブジェクト・メンバーを含むJSONオブジェクトを戻します。

    • JSON_OBJECTAGGでは、その入力として、プロパティのキーと値のペアを取得し、キーと値の各ペアのオブジェクト・メンバーを構成して、これらのオブジェクト・メンバーを含む単一のJSONオブジェクトを戻します。

    次のJSONファンクションは、一致が見つからない場合の戻り値を指定できるように強化されました。

  • LISTAGGファンクション

    • LISTAGGを使用して、戻り値が戻りデータ型の最大長を超える場合のファンクションの動作を制御できるようになりました。

新しい権限と強化された権限

新規または強化されたシステム権限とオブジェクト権限は次のとおりです。

  • 表18-1に示すシステム権限が強化されました。

    • CREATE JOBおよびCREATE ANY JOBを使用して、リソース・オブジェクトおよび非互換性リソース・オブジェクトを管理できるようになりました。

  • 次の新しいシステム権限は、「表18-1」に一覧が示されています。

    • これらのシステム権限により、分析ビューの作成および管理が可能になります。

      CREATE ANALYTIC VIEWCREATE ANY ANALYTIC VIEWALTER ANY ANALYTIC VIEWおよびDROP ANY ANALYTIC VIEW

      CREATE ATTRIBUTE DIMENSIONCREATE ANY ATTRIBUTE DIMENSIONALTER ANY ATTRIBUTE DIMENSIONおよびDROP ANY ATTRIBUTE DIMENSION

      CREATE HIERARCHYCREATE ANY HIERARCHYALTER ANY HIERARCHYおよびDROP ANY HIERARCHY

    • CREATE LOCKDOWN PROFILEALTER LOCKDOWN PROFILEおよびDROP LOCKDOWN PROFILEにより、PDBロックダウン・プロファイルを管理できます。

    • INHERIT ANY REMOTE PRIVILEGESにより、定義者権限プロシージャまたはファンクション(現在のユーザー・データベース・リンクを含む)を実行できます。

    • USE ANY JOB RESOURCEにより、任意のスケジュール・リソース・オブジェクトを任意のプログラムまたは権限を付与したスキーマ内のジョブに関連付けることができます。

  • 次の新しいオブジェクト権限は、「表18-2」に一覧が示されています。

    • ユーザーに対するINHERIT REMOTE PRIVILEGESは、ユーザーおよびロールに付与できます。これにより、この権限が付与されたユーザーが、権限受領者が所有する定義者権限プロシージャまたはファンクション(現在のユーザー・データベース・リンクを含む)を実行できます。

    • USE権限は、ジョブ・スケジューラ・オブジェクトに付与できます。これにより、指定されたスケジューラ・リソース・オブジェクトをプログラムおよびジョブに関連付けることができます。

新しいヒント

新しいヒントは、次のとおりです。

  • CONTAINERSヒントでは、SELECT ... containers_clause ...の問合せ中に、CDBまたはアプリケーション・コンテナの各PDBの問合せにヒントを渡すことができます。

  • FRESH_MVヒントは、リアルタイムのマテリアライズド・ビューの新しい機能の一部です。このヒントを使用すると、失効したリアルタイムのマテリアライズド・ビューから最新データをフェッチできます。

  • GROUPINGヒントは、パーティション化されたモデルをスコアリングするときに、データ・マイニング・スコアリング・ファンクションに適用されます。

  • USE_BANDヒントおよびNO_USE_BANDヒントでは、問合せのバンド結合を使用または除外できます。バンド結合はこのリリースの新機能です。詳細は、「バンド結合」を参照してください。

非推奨となった機能

次の機能は、このリリースでは非推奨であり、将来のリリースではサポートされなくなる可能性があります。

  • Oracle Multimediaでは、ISO/IEC 13249-5:2001 SQLMM Part5:StillImage規格(通常、SQL/MM Still Image規格と呼ばれる)の第1版に準拠したオブジェクト型はサポートされていません。

    詳細は、『Oracle Multimediaリファレンス』を参照してください。

  • XMLROOTファンクションは、非推奨です。これは、下位互換性を保つためにのみサポートされています。ただし、かわりにSQL/XMLファンクションXMLSERIALIZEを使用してバージョン番号を指定することをお薦めします。

    XMLSERIALIZEファンクションの詳細は、『Oracle XML DB開発者ガイド』を参照してください。

サポート対象外機能

このドキュメントに記載されていた一部の機能は、Oracle Database 12cリリース2 (12.2)ではサポート対象外になります。サポートされない機能のリストは、『Oracle Databaseアップグレード・ガイド』を参照してください。

Oracle Database 12cリリース1 (12.1.0.2)での変更点

Oracle Database 12cリリース1 (12.1.0.2)のOracle Database SQL言語リファレンスで変更された点を次に示します。

新機能

このリリースの新機能は次のとおりです。

  • インメモリー列ストア(IM列ストア)は任意に入力できる静的なSGAプールです。ここには、迅速にスキャンできるように最適化された特殊な列形式で、表のコピーおよびパーティションが格納されています。

    CREATE TABLEinmemory_table_clauseCREATE TABLESPACEinmemory_clauseCREATE MATERIALIZED VIEWinmemory_table_clauseを参照してください。

    次のヒントを参照してください。

  • Oracle Databaseでは、JavaScript Object Notation(JSON)がサポートされるようになりました。

    次の条件を参照してください。

    次のファンクションを参照してください。

    「JSONオブジェクト・アクセス式」を参照してください。

  • 属性クラスタリングは、指定された列の内容に基づいて物理的に近い表データをクラスタリングできます。

    CREATE TABLEattribute_clustering_clauseおよびALTER TABLEattribute_clustering_clauseを参照してください。

    次のヒントを参照してください。

  • ゾーン・マップは、特定の列の値が格納される連続したデータ・ブロックのセット(ゾーン)を追跡して、表スキャンのI/OおよびCPUコストを削減できます。属性クラスタリングの使用に関係なくゾーン・マップを使用できます。

    CREATE MATERIALIZED ZONEMAPALTER MATERIALIZED ZONEMAPDROP MATERIALIZED ZONEMAP文とCREATE TABLEzonemap_clauseを参照してください。

    NO_ZONEMAPヒントSYS_OP_ZONE_IDファンクションを参照してください。

  • レンジ・パーティション・ハッシュ・クラスタを作成できます。

    CREATE CLUSTERcluster_range_partitions句およびALTER CLUSTERallocate_extent_clauseを参照してください。

  • 新しいファンクションAPPROX_COUNT_DISTINCTは、列に対して適切な数の異なる値を戻します。このファンクションは、COUNTファンクションの代替機能です。正確な結果とわずかに誤差がありますが、COUNTよりはるかに高速に大量のデータを処理します。

    APPROX_COUNT_DISTINCTを参照してください。

  • 拡張索引圧縮と呼ばれる新しいタイプの索引圧縮は、索引の効率的なアクセスを維持しながら圧縮率を向上できます。

    CREATE INDEXadvanced_index_compression句を参照してください。

  • ハイブリッド列圧縮で圧縮された表の場合、DML操作中に行レベル・ロックを使用するかどうかを制御できるようになりました。

    CREATE TABLE[NO] ROW LEVEL LOCKING句を参照してください。

  • データベースでは、バッファ・キャッシュ内のキャッシュに適しているNOCACHE LOBを含むデータベース全体を指定できる強制完全データベースキャッシュモードをサポートするようになりました。

    ALTER DATABASE[NO] FORCE FULL DATABASE CACHING句を参照してください。

  • データベース・ロールをCBAC付与を行うユーザーに付与する場合、ロールの権限受領者の追加権限を付与しないようにGRANT文にWITH DELEGATE OPTIONを指定できるようになりました。WITH DELEGATE OPTIONは、WITH ADMIN OPTIONの代替機能です。ロールをプログラム・ユニットに付与できますが、他のプリンシパルへのロールの付与やロール自体の管理は許可されていません。

    GRANTWITH DELEGATE OPTION句を参照してください。

  • 新しいREADオブジェクト権限およびREAD ANY TABLEシステム権限によって、ユーザーは、表、マテリアライズド・ビュー、ビューおよびそれらのシノニムを問い合せることができます。

    READオブジェクト権限は、SELECTオブジェクト権限の代替機能です。オブジェクトの問合せ以外に、SELECTオブジェクト権限を使用すると、ユーザーは、LOCK TABLEおよびSELECT ... FOR UPDATE文を使用して表の行をロックできます。READオブジェクト権限のみ、ユーザーはオブジェクトを問い合せることができます。詳細は、表18-2を参照してください。

    READ ANY TABLEシステム権限は、SELECT ANY TABLEシステム権限の代替機能です。オブジェクトの問合せ以外に、SELECT ANY TABLE権限を使用すると、ユーザーは、SELECT ... FOR UPDATE文を使用して表の行をロックできます。READ ANY TABLE権限のみ、ユーザーはオブジェクトを問い合せることができます。詳細は、表18-1を参照してください。

Oracle Database 12cリリース1 (12.1.0.1)での変更点

Oracle Database 12cリリース1 (12.1.0.1)のOracle Database SQL言語リファレンスで変更された点を次に示します。

新機能

このリリースの新機能は次のとおりです。

新しいSQL文が導入される機能

次の機能では、新しいSQL文が導入されます。

  • マルチテナントアーキテクチャで提供される機能により、Oracle Databaseはマルチテナント・コンテナ・データベース(CDB)として機能します。CDBは、1つ以上のプラガブル・データベース(PDB)を含むOracle Databaseです。PDBは、Oracleクライアントに非CDBとして表示されるスキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトのポータブル・コレクションです。PDBはCDBから切断して、別のCDBに接続できます。

    次の新しい文を参照してください。

  • 統合監査は、強化された監査機能の完全なセットを提供します。指定した名前の統合監査ポリシーの作成、統合監査ポリシーの有効化または無効化、ポリシーへのユーザーの適用または除外を行うことができます。また、監査動作が失敗した場合、成功した場合、または両方の場合に監査レコードを作成するかどうかを設定できます。さらに、監査レコード内のアプリケーション・コンテキストの値を取得することもできます。

    次の新しい文を参照してください。

  • 透過的データ暗号化(TDE)用の新しい統合キー管理インタフェースにより、キー管理タスクが簡単になり、コンプライアンスおよびトラッキングが向上するだけでなく、データベース管理者とセキュリティ管理者の職務権限の分離も向上します。

    新しいADMINISTER KEY MANAGEMENT文を参照してください。

ALTER DATABASEの機能強化

次の機能により、ALTER DATABASE文が強化されています。

  • ストレージ・スナップショット最適化により、バックアップ・モードなしで作成されたサード・パーティによるデータベースのストレージ・スナップショットを、あらゆる種類のリカバリ操作(ポイント・イン・タイム・リカバリを含む)に使用できます。ALTER DATABASE文が新しいSNAPSHOT TIME句によって強化され、このようなストレージ・スナップショットを使用してデータベースをリカバリできるようになりました。

    ALTER DATABASE「full_database_recovery」句の新しいSNAPSHOT TIME句を参照してください。

  • データベースがオープン状態のときに、オンライン・データファイルを新しい場所に移動して、そのデータファイルにアクセスできます。

    ALTER DATABASEの新しい句「move_datafile_clause」を参照してください。

  • Data Guard遠隔同期インスタンスの制御ファイルを作成できます。

    ALTER DATABASEの強化された句「controlfile_clauses」を参照してください。

  • 物理スタンバイ・データベースへのスイッチオーバーおよびフェイルオーバーの実行が単純化されています。

    ALTER DATABASEの新しい句「switchover_clause」および「failover_clause」を参照してください。

  • 物理スタンバイ・データベースに対するREDO Apply時に、デフォルトでリアルタイム適用が有効化されるようになりました。リアルタイム適用を無効化するには、USING ARCHIVED LOGFILEを指定します。

    ALTER DATABASEの強化された「managed_standby_recovery」句を参照してください。

ALTER SYSTEMの機能強化

次の機能により、ALTER SYSTEM文が強化されています。

  • クライアントを最も負荷が低いOracle ASMインスタンスに再配置します。

    ALTER SYSTEMの新しい「RELOCATE CLIENT」句を参照してください。

  • Oracle ASM用にリリースされた個別パッチをローリング方式で適用します。

    ALTER SYSTEMの新しい「rolling_patch_clauses」を参照してください。

AUDITとNOAUDIT(従来型監査)の機能強化

次の機能により、従来型監査用のAUDIT文とNOAUDIT文が強化されています。

CREATE DISKGROUPとALTER DISKGROUPの機能強化

次の機能により、CREATE DISKGROUP文、ALTER DISKGROUP文、またはその両方が強化されています。

  • 標準冗長性および高冗長性のOracle ASMディスク・グループで、論理データの破損を検査して自動的に修復できます。

    ALTER DISKGROUPの新しい句「scrub_clause」を参照してください。

  • Oracle ASMディスク・グループ内のユーザーを置換できます。

    ALTER DISKGROUPの強化された「user_clauses」を参照してください。

  • Oracle ASMディスク・グループ・ファイルがオープン状態のときに、このファイルの権限、所有者およびユーザー・グループを変更できます。

    ALTER DISKGROUPの強化された句「file_permissions_clause」および「file_owner_clause」を参照してください。

  • Oracle ASMディスク・グループ内の1つ以上のディスクを単一の操作で置換できます。

    ALTER DISKGROUPの新しい「replace_disk_clause」を参照してください。

  • Oracle ASMディスク・グループ内のディスクの名前を変更できます。

    ALTER DISKGROUPの新しい「rename_disk_clause」を参照してください。

  • Oracle ASMディスク・グループの新しい属性は次のとおりです。

    • CONTENT.CHECKでは、ディスク・グループのリバランスのためにデータ・コピー操作を実行する際のコンテンツ・チェックを有効化または無効化できます。

    • FAILGROUP_REPAIR_TIMEでは、ディスク・グループ内の障害グループのデフォルトの修復時間を指定できます。

    • PHYS_META_REPLICATEDでは、ディスク・グループのレプリケーション・ステータスをトラッキングできます。

    • THIN_PROVISIONEDでは、ディスク・グループのリバランスの完了後に未使用の記憶領域を破棄する機能を有効化または無効化することができます。

    表13-2を参照してください。

CREATE FLASHBACK ARCHIVEとALTER FLASHBACK ARCHIVEの機能強化

次の機能により、CREATE FLASHBACK ARCHIVE文とALTER FLASHBACK ARCHIVE文が強化されています。

  • 履歴表のデータ記憶域を最適化するようにデータベースに指示できます。

    CREATE FLASHBACK ARCHIVEの新しい句「[NO] OPTIMIZE DATA」と、ALTER FLASHBACK ARCHVEの新しい句「[NO] OPTIMIZE DATA」を参照してください。

CREATE INDEXとALTER INDEXの機能強化

次の機能により、CREATE INDEX文、ALTER INDEX文、またはその両方が強化されています。

  • 表のパーティションのサブセットに部分索引を作成できます。

    CREATE INDEXの新しい句「partial_index_clause」を参照してください。

  • 表パーティションのメンテナンス操作により、以前に削除または切捨てされたレコードに対する孤立した索引エントリを削除できます。

    ALTER INDEX ... COALESCEの新しいキーワード「CLEANUP」、およびALTER INDEX ... MODIFY PARTITION ... COALESCEの新しいキーワード「CLEANUP」を参照してください。

  • 索引のタイプが異なる場合、索引が異なるパーティション化を使用する場合、または索引に個別の一意性プロパティがある場合に、同じ列、列式またはその両方のセットに対して複数の索引を作成できます。

    CREATE INDEX「index_expr」句を参照してください。

CREATE INDEXTYPEとALTER INDEXTYPEの機能強化

次の機能により、CREATE INDEXTYPE文とALTER INDEXTYPE文が強化されています。

CREATE MATERIALIZED VIEWとALTER MATERIALIZED VIEWの機能強化

次の機能により、CREATE MATERIALIZED VIEW文とALTER MATERIALIZED VIEW文が強化されています。

CREATE MATERIALIZED VIEW LOGとALTER MATERIALIZED VIEW LOGの機能強化

次の機能により、CREATE MATERIALIZED VIEW LOG文とALTER MATERIALIZED VIEW LOG文が強化されています。

  • マテリアライズド・ビュー・ログに使用するリフレッシュ方法を指定できます。Oracle Database 12cで導入された同期リフレッシュ、または以前のリリースでも利用可能な高速リフレッシュを指定できます。

    参照:

CREATE SEQUENCEとALTER SEQUENCEの機能強化

次の機能により、CREATE SEQUENCE文とALTER SEQUENCE文が強化されています。

  • アプリケーション・コンティニュイティのための再実行中に、順序疑似列NEXTVALの元の値を保持するかどうかを制御します。

    参照:

  • セッションの順序を作成できます。この順序は、セッションで認識できるグローバル一時表に使用することが具体的に指定される特種な順序です。

    参照:

CREATE TABLEとALTER TABLEの機能強化

次の機能により、CREATE TABLE文、ALTER TABLE文、またはその両方が強化されています。

  • VARCHAR2NVARCHAR2、およびRAWデータ型の最大サイズが、32,767バイトに拡大されています。

    「拡張データ型」を参照してください。

  • 一時的有効性のサポートにより、有効な時間ディメンションを表に関連付けることができます。Oracleフラッシュバック問合せを使用すると、その表の行を、指定された時刻の時点で、または指定された期間中に有効と認識されるかどうかに基づいて取得できます。

    参照:

  • 仮想列は非エディション・オブジェクトですが、エディション・オブジェクトに依存できます。

    参照:

  • NULL値可能の列にDEFAULT値を指定したときのパフォーマンスが向上されました。

    ALTER TABLE「DEFAULT」句を参照してください。

  • 順序疑似列のCURRVALNEXTVALを含むデフォルトの列値を指定できます。

    参照:

  • DEFAULT句には新しい句のON NULLが使用できます。この句を使用すると、INSERT文で割り当てようとしている値がNULLに評価されるときに、指定したデフォルトの列値を割り当てるようにデータベースに指示できます。

    参照:

  • 順序ジェネレータの増加または減少する整数値が割り当てられるID列を指定できます。

    参照:

  • 表内の列を非表示および非表示解除できます。

    参照:

  • 切捨て操作を子表に向けて再帰的にカスケードできます。

    ALTER TABLEの句truncate_partition_subpartの新しいキーワード「CASCADE」を参照してください。

  • 交換操作を子表に向けて再帰的にカスケードできます。

    ALTER TABLEの句exchange_partition_subpartの新しいキーワード「CASCADE」を参照してください。

  • XMLTypeデータ、およびXMLType型、CLOB型、BLOB型、またはNCLOB型の属性を含む抽象データ型をANYDATA列に格納できます。

    ALTER TABLEの新しい句「modify_opaque_type」を参照してください。

  • インデータベース・アーカイブの行アーカイブに対して表を有効化できます。

    CREATE TABLEの新しい「ROW ARCHIVAL」句を参照してください。

  • 自動データ最適化のためのポリシーを管理できます。

    CREATE TABLEの新しい「ilm_clause」と、ALTER TABLEの新しい「ilm_clause」を参照してください。

  • 親表が時間隔パーティション表の場合に子表の参照パーティション表を作成できます。

    CREATE TABLEの強化された句「reference_partitioning」を参照してください。

  • 次のALTER TABLE操作に、複数の表パーティションまたは表サブパーティションを指定できます。

    • 1つ以上のレンジ、リスト、またはシステム・パーティションを表に追加する。「add_table_partition」を参照してください。

    • 1つ以上のレンジ・サブパーティションをパーティションに追加する。「add_range_subpartition」を参照してください。

    • 1つ以上のリスト・サブパーティションをパーティションに追加する。「add_list_subpartition」を参照してください。

    • 1つのレンジまたはリスト・パーティションを2つ以上のパーティションに分割する。「split_table_partition」を参照してください。

    • 1つのレンジまたはリスト・サブパーティションを2つ以上のサブパーティションに分割する。「split_table_subpartition」を参照してください。

    • 2つ以上のレンジ、リストまたはシステム・パーティションを1つの新しいパーティションにマージする。「merge_table_partitions」を参照してください。

    • 2つ以上のレンジまたはリスト・サブパーティションを1つの新しいサブパーティションにマージする。「merge_table_subpartitions」を参照してください。

    • 1つ以上のパーティションまたはサブパーティションを切り捨てる。「truncate_partition_subpart」を参照してください。

    • 1つ以上のパーティションを削除する。「drop_table_partition」を参照してください。

    • 1つ以上のサブパーティションを削除する。「drop_table_subpartition」を参照してください。

  • 以前のリリースでは、次のDDL操作にはDMLブロッキング・ロックが必要でした。新しいONLINEキーワードを使用すると、次のDDL操作時にDML文を実行できるようになります。

    • 索引の削除(DROP INDEX ... 「ONLINE」 ...を使用)

    • 索引へのUNUSABLEのマーク付け(ALTER INDEX ... UNUSABLE 「ONLINE」を使用)

    • 列へのUNUSEDのマーク付け(ALTER TABLE ... SET UNUSED ... 「ONLINE」 ...を使用)

    • 制約の削除(ALTER TABLE ... DROP ... 「ONLINE」 ...を使用)

    • 表パーティションの移動(ALTER TABLE ... MOVE PARTITION ... ONLINEを使用)

    • 表サブパーティションの移動(ALTER TABLE ... MOVE SUBPARTITION ... ONLINEを使用)

CREATE VIEWの機能強化

次の機能により、CREATE VIEW文が強化されています。

  • ビュー内の列を非表示および非表示解除できます。

    CREATE VIEWの新しい句「VISIBLE | INVISIBLE」を参照してください。

  • ビューで参照されるファンクションをビューの実行者権限で実行するか、ビューの定義者権限で実行するかを指定できます。

    CREATE VIEWの新しい句「BEQUEATH」を参照してください。

GRANTとREVOKEの機能強化

次の機能により、GRANT文とREVOKE文が強化されています。

SELECTの機能強化

次の機能により、SELECT文が強化されています。

  • パターン一致により、表内の複数の行にわたって発生するパターンを認識できます。

    SELECTの新しい句「row_pattern_clause」を参照してください。

  • 上位N番までの問合せの実行に、オフセットと、戻される行数または行数の割合を指定できます。

    SELECTの新しい句「row_limiting_clause」を参照してください。

  • 2組以上の表の外部結合を行う問合せにおいて、単一表は複数の表に対してNULL生成された表になることができます。

    外部結合を参照してください。

  • 左相関のサポートにより、ANSI CROSS JOINまたはANSI LEFT OUTER JOINの変化形を実行できます。結合句の右側に表参照またはコレクション式を指定できます。

    SELECTの新しい句「cross_outer_apply_clause」を参照してください。

  • 問合せ式にLATERALインライン・ビューを指定できます。

    SELECTの新しいキーワード「LATERAL」を参照してください。

  • 問合せのWITH句内でPL/SQLファンクションおよびプロシージャの宣言と定義ができます。このPL/SQLファンクションは、その問合せと、その問合せの副問合せで参照できます。

    SELECTの新しい句「plsql_declarations」を参照してください。

TRUNCATE TABLEの機能強化

次の機能により、TRUNCATE TABLE文が強化されています。

  • 子表を再帰的に切捨てできます。

    TRUNCATE TABLEの新しい句「CASCADE」を参照してください。

新しいファンクションと強化されたファンクション

新しいファンクションまたは強化されたファンクションは、次のとおりです。

  • 「CLUSTER_DETAILS」は、行ごとのクラスタ・メンバーシップを予測する新しいファンクションです。これは、事前定義されたクラスタリング・モデルを使用することも、動的クラスタリングを実行することもできます。このファンクションは、予測されたクラスタまたは指定されたクラスタを記述するXML文字列を戻します。

  • 「CLUSTER_DISTANCE」は、行ごとのクラスタ・メンバーシップを予測する新しいファンクションです。これは、事前定義されたクラスタリング・モデルを使用することも、動的クラスタリングを実行することもできます。このファンクションは、各行間の行の距離と、予測されたクラスタまたは指定されたクラスタの重心を戻します。

  • 「CLUSTER_ID」は、事前定義されたクラスタリング・モデルを使用することも、動的にクラスタリングを実行することもできるように強化されました。

  • 「CLUSTER_PROBABILITY」は、事前定義されたクラスタリング・モデルを使用することも、動的にクラスタリングを実行することもできるように強化されました。戻り値のデータ型は、NUMBERからBINARY_DOUBLEに変更されました。

  • 「CLUSTER_SET」は、事前定義されたクラスタリング・モデルを使用することも、動的にクラスタリングを実行することもできるように強化されました。戻される確率のデータ型は、NUMBERからBINARY_DOUBLEに変更されました

  • 「FEATURE_DETAILS」は、行ごとの特性の一致を予測する新しいファンクションです。事前定義された特性抽出モデルを使用することも、動的に特性抽出を実行することもできます。このファンクションは、予測された特性または指定された特性を記述するXML文字列を戻します。

  • 「FEATURE_ID」は、事前定義された特性抽出モデルを使用することも、動的に特性抽出を実行することもできるように強化されました。

  • 「FEATURE_SET」は、事前定義された特性抽出モデルを使用することも、動的に特性抽出を実行することもできるように強化されました。戻される確率のデータ型は、NUMBERからBINARY_DOUBLEに変更されました。

  • 「FEATURE_VALUE」は、事前定義された特性抽出モデルを使用することも、動的に特性抽出を実行することもできるように強化されました。戻り値のデータ型は、NUMBERからBINARY_DOUBLEに変更されました。

  • 「ORA_INVOKING_USER」は、現在の文またはビューを起動したデータベース・ユーザーの名前を戻す新しいファンクションです。このファンクションは、文で参照される中間ビューのBEQUEATHプロパティを考慮に入れます。

  • 「ORA_INVOKING_USERID」は、現在の文またはビューを起動したデータベース・ユーザーのIDを戻す新しいファンクションです。このファンクションは、文で参照される中間ビューのBEQUEATHプロパティを考慮に入れます。

  • 「PREDICTION」は、ユーザー定義の予測モデルを使用することも、動的に予測を実行することもできるように強化されています。

  • 「PREDICTION_BOUNDS」は、予測の上位境界と下位境界をBINARY_DOUBLEデータ型で戻すようになりました。以前は、これらの値がNUMBERデータ型で戻されていました。

  • 「PREDICTION_COST」は、ユーザー定義の予測モデルを使用することも、動的に予測を実行することもできるように強化されています。戻されるコストのデータ型は、NUMBERからBINARY_DOUBLEに変更されました。

  • 「PREDICTION_DETAILS」は、ユーザー定義の予測モデルを使用することも、動的に予測を実行することもできるように強化されています。

  • 「PREDICTION_PROBABILITY」は、ユーザー定義の予測モデルを使用することも、動的に予測を実行することもできるように強化されています。戻される確率のデータ型は、NUMBERからBINARY_DOUBLEに変更されました。

  • 「PREDICTION_SET」は、ユーザー定義の予測モデルを使用することも、動的に予測を実行することもできるように強化されています。戻される確率のデータ型は、NUMBERからBINARY_DOUBLEに変更されました。

  • 「STANDARD_HASH」は、いくつかの標準化されたハッシュ・アルゴリズムを使用して特定の式のハッシュ値を計算する新しいファンクションです。

  • 「SYS_CONTEXT」では、指定されたロールが当該セッションで現在有効化されているかどうかを判断できる新しいビルトイン・ネームスペースSYS_SESSION_ROLESに対する問合せができます。

新しい権限と強化された権限

新規または強化されたシステム権限とオブジェクト権限は次のとおりです。

  • 次のシステム権限については、動作が変更されています。これらの権限は、「表18-1」に一覧が示されています。

    • SELECT ANY DICTIONARYでは、SYSスキーマに含まれるオブジェクトのDEFAULT_PWD$ENC$LINK$USER$USER_HISTORY$、およびXS$VERIFIERSの問合せができなくなりました。

  • 次の新しいシステム権限は、「表18-1」に一覧が示されています。

    • CREATE SQL TRANSLATION PROFILECREATE ANY SQL TRANSLATION PROFILEALTER ANY SQL TRANSLATION PROFILEUSE ANY SQL TRANSLATION PROFILE、およびDROP ANY SQL TRANSLATION PROFILEでは、SQL翻訳プロファイルを管理できます。

    • EXEMPT REDACTION POLICYでは、既存のOracle Data Redactionポリシーをバイパスできます。

    • INHERIT ANY PRIVILEGESでは、実行者の権限で実行者権限プロシージャを実行できます。

    • KEEP DATE TIMEでは、SYSDATEおよびSYSTIMESTAMPファンクションで、それらの元の値をアプリケーション・コンティニュイティのための再実行中に戻せるようになります。

    • KEEP SYSGUIDでは、SYS_GUIDファンクションで、その元の値をアプリケーション・コンティニュイティのための再実行中に戻せるようになります。

    • LOGMININGでは、マルチテナント・コンテナ・データベース(CDB)内でLogMiner操作を実行できます。

    • PURGE DBA_RECYCLEBINでは、システム全体のごみ箱からすべてのオブジェクトを削除できます。

    • SYSBACKUPでは、バックアップ・タスクとリカバリ・タスクが実行できます。

    • SYSDGでは、Oracle Data Guardを管理できます。

    • SYSKMでは、暗号化キーの管理を実行できます。

    • TRANSLATE ANY SQLでは、SQLを任意のユーザー用に変換できます。

  • 次の新しいオブジェクト権限は、「表18-2」に一覧が示されています。

    • ALTERおよびUSE権限は、SQL翻訳プロファイルに対する操作を許可します。

    • INHERIT PRIVILEGESは新しいタイプのオブジェクト権限であり、あるユーザーから複数のユーザーおよびロールに付与できます。これにより、権限受領者が所有する実行者権限プロシージャを、この権限を付与されたユーザーが実行者の場合に、実行者の権限で実行できるようになります。

    • KEEP SEQUENCEでは、順序疑似列NEXTVALが、その元の値をアプリケーション・コンティニュイティのための再実行中に維持できるようになります。

    • TRANSLATE SQLは新しいタイプのオブジェクト権限であり、あるユーザーから複数のユーザーおよびロールに付与できます。これにより、権限受領者は権限受領者のSQL翻訳プロファイルを使用して、この権限が付与されたユーザー用にSQLを変換できるようになります。

新しいヒント

新しいヒントは、次のとおりです。

非推奨となった機能

次の機能は、このリリースでは非推奨であり、将来のリリースではサポートされなくなる可能性があります。

  • ストアド・アウトラインは非推奨になりました。ストアド・アウトラインは、下位互換性を保つために今でもサポートされています。ただし、かわりにSQL計画管理を使用することをお薦めします。SQL計画管理では、ストアド・アウトラインよりも非常に安定したSQLパフォーマンスを実現するSQL計画ベースラインが作成されます。

    SQL計画管理の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください。

  • PKI暗号化と透過的データ暗号化を組み合せた使用は非推奨です。透過的データ暗号化を構成するには、ADMINISTER KEY MANAGEMENT文を使用します。

    詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

サポート対象外機能

このドキュメントで以前に記述されていた機能の一部は、Oracle Database12cリリース1(12.1)ではサポートされません。サポートされない機能のリストは、『Oracle Databaseアップグレード・ガイド』を参照してください。