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

内容は次のとおりです。

Oracle Databaseリリースでの変更点 19.28

新機能

リリース19.28では、次の機能が導入されています。

IF [NOT] EXISTS

CREATE文にIF [NOT] EXISTSを指定すると、オブジェクトがすでに存在していても、コマンドがエラーになりません。

次の表に、IF [NOT] EXISTSをサポートするCREATE文を示します。

表-1 IF [NOT] EXISTSをサポートするCREATE文

CREATE文

ANALYTICAL VIEW

ATTRIBUTE DIMENSION

CLUSTER

DATABASE LINK

DIRECTORY

EDITION

FUNCTION

HIERARCHY

INDEX

INDEXTYPE

JAVA

LIBRARY

MATERIALIZED VIEW

MATERIALIZED VIEW LOG

MATERIALIZED VIEW ZONEMAP

OPERATOR

PACKAGE

PACKAGE BODY

PROCEDURE

SEQUENCE

SYNONYM

TABLE

TABLESPACE

TRIGGER

TYPE

TYPE BODY

USER

VIEW

IF EXISTS

ALTER文およびDROP文にIF EXISTSを指定すると、オブジェクトが存在していなくても、コマンドがエラーになりません。

次の表に、IF EXISTSをサポートするDROP文およびALTER文を示します:

表-2 IF EXISTSをサポートするALTER文およびDROP文

DROP文 ALTER文

ANALYTICAL VIEW

ANALYTICAL VIEW

ATTRIBUTE DIMENSION

ATTRIBUTE DIMENSION

CLUSTER

CLUSTER

DATABASE LINK

DATABASE LINK

DIRECTORY

サポートなし

EDITION

EDITION

EDITION

EDITION

HIERARCHY

HIERARCHY

INDEX

INDEX

INDEXTYPE

INDEXTYPE

JAVA

JAVA

LIBRARY

LIBRARY

MATERIALIZED VIEW

MATERIALIZED VIEW

MATERIALIZED VIEW LOG

MATERIALIZED VIEW LOG

MATERIALIZED VIEW ZONEMAP

MATERIALIZED VIEW ZONEMAP

OPERATOR

OPERATOR

PACKAGE

PACKAGE

PROCEDURE

PROCEDURE

SEQUENCE

SEQUENCE

SYNONYM

SYNONYM

TABLE

TABLE

TABLESPACE

TABLESPACE

TRIGGER

TRIGGER

TYPE

TYPE

サポートなし

TYPE BODY

USER

USER

VIEW

VIEW

スキーマ注釈

注釈は、アプリケーション・メタデータをデータベースに一元的に格納するメカニズムを提供し、アプリケーション、モジュールおよびマイクロサービス間で共有できるようにします。

注釈を作成するには、CREATE文でannotations_clauseを指定する必要があります。

次の文は、annotations_clauseをサポートしています。

  • CREATE INDEXALTER INDEX

  • CREATE MATERIALIZED VIEWALTER MATERIALIZED VIEW

  • CREATE TABLEALTER TABLE

  • CREATE VIEWALTER VIEW

annotations_clauseを参照してください。

Oracle Databaseリリース19cにおける変更点

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

新機能

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

Microsoft Azure ADユーザーへのOracle Databaseスキーマおよびロールのマッピング

CREATE USERの拡張されたGLOBALLY句を使用して、Oracle DatabaseスキーマをMicrosoft Azure ADユーザーに排他的にマップできます。

CREATE ROLEの拡張されたGLOBALLY句を使用して、共有OracleスキーマまたはOracle Databaseグローバル・ロールをAzure ADアプリケーション・ロールにマップできます。

SQLマクロ

SQLマクロ(SQM)を作成して、共通のSQL式および文を、他のSQL文で使用できる再利用可能なパラメータ化された構造体にくくり出すことができます。

Oracle Databaseリリース19c, バージョン19.7以降、SQL表マクロがサポートされています。SQL表マクロは、通常FROM句で使用される式で、多相(パラメータ化)ビューのように機能します。

SQL表マクロにより、開発者の生産性が高まり、コラボレーション開発が簡略化され、コード品質が向上します。

粒度の高いサプリメンタル・ロギング

粒度の高いサプリメンタル・ロギングでは、データベース・レベルまたはスキーマ・レベルでサプリメンタル・ロギングが有効になっている場合でも、部分データベース・レプリケーション・ユーザーは、関心のない表に対するサプリメンタル・ロギングを無効にできます。

この機能は、データベース内の一部の表に対してのみサプリメンタル・ロギングが必要な場合に使用し、リソース使用率およびREDO生成のオーバーヘッドを大幅に削減します。

この機能を使用するには、ALTER DATABASEおよびALTER PLUGGABLE DATABASE文のsupplemental_db_logging句に追加された新しいsupplemental_subset_replication_clauseを構成します。

LOBロケータの署名ベース・セキュリティ

このリリース以降、ラージ・オブジェクト(LOB)ロケータの署名ベース・セキュリティを構成できます。LOB署名キーは、マルチテナントPDBまたはスタンドアロンの非マルチテナント・データベースのどちらでも使用できます。

ALTER DATABASE DICTIONARY ENCRYPT CREDENTIALS SQL文を実行することで、LOB署名キー資格証明の暗号化を有効にできます。それ以外の場合、資格証明は不明瞭化された形式で格納されます。LOB署名キーを暗号化された形式で格納する場合、データベースまたはPDBにオープンTDEキーストアが必要です。

REST APIを使用したクラウドのオブジェクト・ストアのサポート

Oracle Data Pumpは、サポートされているオブジェクト・ストアにあるファイルからデータをインポートできます。

ALTER DATABASE文の新しいproperty_clauseを使用して、コマンドラインでデータベース資格証明を指定し、デフォルトの資格証明をデータベースに格納できます。

システム管理シャーディングに対する複数表ファミリのサポート

この機能は、システム管理シャード・データベースにのみ適用されます。CREATE SHARDED TABLE文を使用して、1つのシャード・データベースで異なる表ファミリにアクセスする様々なアプリケーションをホストできます。

システム・シャーディングを使用する表ファミリは複数作成できますが、ユーザー定義および複合シャーディングでは1つの表ファミリのみがサポートされます。

シャード間の一意の連番の生成

一意制約を持つ主キー以外の列のシャード間でグローバルに一意の連番を生成でき、自分で管理する必要がありません。シャード・データベースによってこれらの連番が管理されます。

CREATE SEQUENCE文またはALTER SEQUENCE文のSHARD句を使用して、シャード間で一意の連番を生成します。

インメモリー外部表のビッグ・データおよびパフォーマンスの向上

CREATE TABLEおよびALTER TABLE文のinmemory_clauseでは、ORACLE_HIVEおよびORACLE_BIGDATAドライバ・タイプの指定をサポートしています。

非パーティション表のinmemory_clause句でINMEMORYを指定して、これらのドライバ・タイプをサポートできます。

ビットマップ・ベースの固有カウントのSQLファンクション

5つの新しいビット・ベクトル・ファンクションを使用して、SQL問合せ内でCOUNT DISTINCT操作を高速化できます。

  • BITMAP_BUCKET_NUMBER
  • BITMAP_BIT_POSITION
  • BITMAP_CONSTRUCT_AGG
  • BITMAP_OR_AGG
  • BITMAP_COUNT

Memoptimized Rowstore - 高速インジェスト

高速収集を有効にするには、CREATE TABLEまたはALTER TABLEmemoptimize_write_clauseを使用します。高速収集は、ディスクに書き込む前に挿入を格納するバッファ・プールを利用して、モノのインターネット(IoT)アプリケーションから1行データを挿入する頻繁なメモリー処理を最適化します。

JSONとオブジェクトのマッピング

この機能により、JSONデータと、ユーザー定義のSQLオブジェクト型およびコレクションとの間のマッピングが可能になります。

SQL/JSONファンクションjson_valueを使用して、JSONデータをSQLオブジェクト型のインスタンスに変換できます。反対の方向では、SQL/JSONファンクションjson_objectまたはjson_arrayを使用して、SQLオブジェクト型のインスタンスからJSONデータを生成できます。

JSON_MERGEPATCHファンクション

新しいSQLファンクションjson_mergepatchを使用して、JSONドキュメントを宣言的に更新できるようになりました。1つの文を使用して複数のドキュメントに1つ以上の変更を適用できます。

この機能により、JSON更新操作の柔軟性が向上します。

JSON構文の簡略化

構文の簡略化は、SQL/JSONパス式およびファンクションjson_objectによるSQL/JSON生成用に提供されます。新しいSQL問合せ句NESTEDは、json_tableLEFT OUTER JOINとともに使用する方法の単純な代替方法を提供します。

GeoJSONデータに対するJSON_SERIALIZEおよびJSONデータ・ガイドのサポート

新しいSQLファンクションjson_serializeを使用して、JSONデータをテキストまたはUTFエンコードBLOBデータにシリアライズできます。

SQL集計ファンクションjson_dataguideでは、GeoJSON地理データをドキュメント内で検出できるようになりました。これを使用して、このようなデータをSQLデータ型SDO_GEOMETRYとして投影するビューを作成できます。

ハイブリッド・パーティション表

一部のパーティションがOracleデータベース・セグメント内に存在し、一部のパーティションが外部ファイルおよびソース内に存在するハイブリッド・パーティション表を作成できます。内部パーティションおよび外部パーティションは、必要に応じて単一のパーティション表に統合できます。

CREATE TABLEまたはALTER TABLEtable_partition_description句でINTERNALまたはEXTERNALを指定します。

パリティ保護されたファイル

高レベルの冗長性を必要としないアーカイブ・ログやバックアップ・セットなどのライトワンス・ファイルの単一のパリティを構成し、領域を節約できます。

ALTER DISKGROUP文のredundancy_clausePARITYを指定します。

LISTAGG集計のDISTINCTオプション

LISTAGG集計ファンクションでは、新しいDISTINCTキーワードを使用した重複削除がサポートされるようになりました。

統合監査のトップ・レベル文

ユーザーが直接発行したSQL文を監査する場合は、CREATE AUDIT POLICY文(統合監査)にONLY TOPLEVEL句を指定します。

by_users_with_roles_clauseを使用して、指定したロールを直接的または間接的に付与されたユーザーのポリシーを有効化できるようになりました。

OMF以外のモードでの自動名前変更の透過的オンライン変換のサポート

ALTER TABLESPACE ENCRYPTION文でFILE_NAME_CONVERTを省略すると、Oracleは内部的に補助ファイルの名前を選択し、後でその名前を元の名前に戻します。

ALTER SYSTEM句のFLUSH PASSWORDFILE_METADATA_CACHE

コマンドALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHEは、SGAに格納されているパスワード・ファイルのメタデータ・キャッシュをフラッシュし、変更があったことをデータベースに通知します。

非推奨となった機能

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

SQLNET.ENCRYPTION_WALLET_LOCATIONパラメータは非推奨になりつつあります。

サポート対象外機能

次の機能は、Oracle Database Release 19cではサポート対象外となります。

  • Oracle Multimediaはサポート対象外となります。

  • Oracle Streamsはサポート対象外となります。

リリース19cでサポート対象外となる機能の詳細なリストは、『Oracle Databaseアップグレード・ガイド』を参照してください。