『Oracle Database SQL言語リファレンス』のこのリリースでの変更点
内容は次のとおりです。
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_NUMBERBITMAP_BIT_POSITIONBITMAP_CONSTRUCT_AGGBITMAP_OR_AGGBITMAP_COUNT
Memoptimized Rowstore - 高速インジェスト
高速収集を有効にするには、CREATE TABLEまたはALTER TABLEのmemoptimize_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_tableをLEFT OUTER JOINとともに使用する方法の単純な代替方法を提供します。
GeoJSONデータに対するJSON_SERIALIZEおよびJSONデータ・ガイドのサポート
新しいSQLファンクションjson_serializeを使用して、JSONデータをテキストまたはUTFエンコードBLOBデータにシリアライズできます。
SQL集計ファンクションjson_dataguideでは、GeoJSON地理データをドキュメント内で検出できるようになりました。これを使用して、このようなデータをSQLデータ型SDO_GEOMETRYとして投影するビューを作成できます。
ハイブリッド・パーティション表
一部のパーティションがOracleデータベース・セグメント内に存在し、一部のパーティションが外部ファイルおよびソース内に存在するハイブリッド・パーティション表を作成できます。内部パーティションおよび外部パーティションは、必要に応じて単一のパーティション表に統合できます。
CREATE TABLEまたはALTER TABLEのtable_partition_description句でINTERNALまたはEXTERNALを指定します。
パリティ保護されたファイル
高レベルの冗長性を必要としないアーカイブ・ログやバックアップ・セットなどのライトワンス・ファイルの単一のパリティを構成し、領域を節約できます。
ALTER DISKGROUP文のredundancy_clauseにPARITYを指定します。
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に格納されているパスワード・ファイルのメタデータ・キャッシュをフラッシュし、変更があったことをデータベースに通知します。