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

内容は次のとおりです。

Oracle Databaseリリース23cの変更点

新機能

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

ブール・データ型のSQLサポート

Oracle Databaseは、ISO SQL標準に準拠したBOOLEANデータ型をサポートするようになりました。

BOOLEANデータ型を使用すると、表内にTRUEおよびFALSE値を格納して、SQL文でブール式を使用できます。

Oracle Databaseのグラフのネイティブ表現

Oracle Databaseでは、プロパティ・グラフのデータ構造およびグラフ問合せがネイティブでサポートされるようになりました。

プロパティ・グラフは、データ要素の直接的または間接的な依存関係を検出し、これらの関係からインサイトを抽出する直感的な方法を提供します。Oracle Databaseのエンタープライズ・グレードの管理性、セキュリティ機能およびパフォーマンス機能は、プロパティ・グラフに拡張されています。開発者は、既存のツール、言語および開発フレームワークを使用して、グラフ・アプリケーションを簡単に構築できます。グラフは、トランザクション・データ、JSON、Spatialなどのデータ型と組み合せて使用できます。

ISO/IEC SQLプロパティ・グラフ問合せ(SQL/PGQ)標準のサポート

ISO SQL標準は、プロパティ・グラフ問合せおよびSQLでのプロパティ・グラフの作成を包括的にサポートするように拡張されています。Oracleは、この標準をサポートする最初の商用ソフトウェア製品の1つです。

開発者は、既存のSQL開発ツールとフレームワークを使用して、SQLでグラフ・アプリケーションを簡単に構築できます。ISO SQL標準のサポートにより、コードの移植性が向上し、アプリケーションのロックインのリスクが軽減されます。

UPDATE文およびDELETE文の直接結合

UPDATE文およびDELETE文のターゲット表を、FROM句を使用して他の表に結合します。これらの他の表は、変更する行を制限したり、新しい値のソースにすることができます。直接結合を使用すると、データを変更および削除するSQLを簡単に記述できます。

マルチリンガル・エンジン・モジュール・コール

マルチリンガル・エンジン(MLE)モジュール・コールを使用すると、SQLおよびPL/SQLからモジュールに格納されているJavaScriptファンクションを起動できます。PL/SQLで記述されたコール仕様によって、JavaScriptがPL/SQLコード・ユニットにリンクされます。

UPDATE文のDEFAULT ON NULL

以前は挿入操作についてのみ可能でしたが、更新操作についても列をDEFAULT ON NULLとして定義できます。更新操作で値をNULLに更新しようとすると、DEFAULT ON NULLとして指定された列は、自動的に特定のデフォルト値に更新されます。

GROUP BY列の別名または位置

GROUP BYGROUP BY CUBEGROUP BY ROLLUPおよびGROUP BY GROUPING SETS句で列の別名またはSELECTの項目の位置を使用できるようになりました。また、HAVING句で列の別名がサポートされています。これらの機能強化により、GROUP BYおよびHAVING句を簡単に記述できます。これにより、SQL問合せがはるかに読みやすく、メンテナンスしやすくなると同時に、SQLコードの移植性が向上します。

FROM句なしのSELECT

FROM句がない、SELECT式のみの問合せを実行できるようになりました。この新機能により、SQLコードの移植性と使いやすさが向上します。

SQL UPDATE RETURN句の機能強化

INSERTUPDATEおよびDELETE文のRETURNING INTO句が、それぞれの文の影響を受けた古い値と新しい値を報告するように機能強化されました。これにより、開発者はこれらのDMLタイプのそれぞれに同じロジックを使用して、文の実行前後の値を取得できます。古い値と新しい値は、UPDATE文についてのみ有効です。INSERT文では古い値は報告されず、DELETE文では新しい値は報告されません。

使用状況ドメイン

使用状況ドメインは、スキーマに属するディクショナリ・オブジェクトであり、クレジット・カード番号や電子メール・アドレスなど、共通値のオプション・プロパティおよび制約のセットをカプセル化します。使用状況ドメインを定義した後、そのドメインに関連付ける表の列を定義して、ドメインのオプションのプロパティおよび制約を明示的にそれらの列に適用できます。

使用状況ドメインを使用すると、データを一元的に使用する方法を定義できます。これにより、アプリケーション全体で一貫した方法で値を処理し、データ品質を向上させることが容易になります。

DBMSブロックチェーンのバージョン

ブロックチェーン表の行バージョン機能を使用すると、ユーザー定義列のセットに対応するブロックチェーン表内に保持されている行の複数の履歴バージョンを保持できます。ブロックチェーン表の上部にあるビューbctable_last$を使用すると、最新バージョンの行のみを表示できます。この機能により、アプリケーションで改ざんされにくいブロックチェーン表を使用するときに行バージョニングを保証できます。

DATE、TIMESTAMPおよびINTERVAL型のCEIL FLOOR

DATETIMESTAMPおよびINTERVALの値をCEILおよびFLOOR関数に渡すことができるようになりました。これらの関数には、丸め単位を指定するオプションの2番目の引数が含まれています。INTERVAL値をROUNDおよびTRUNC関数に渡すこともできます。

これらの関数を使用すると、指定した単位の日付と時間の値の上限と下限を簡単に検索できます。

IF [NOT] EXISTS構文のサポート

DDLオブジェクトの作成、変更および削除では、IF EXISTSおよびIF NOT EXISTS構文修飾子がサポートされるようになりました。これにより、特定のオブジェクトが存在する場合や存在しない場合にエラーが発生するかどうかを制御できます。

注釈

注釈を使用すると、すべてのアプリケーションで同じ方法でデータベース・オブジェクトを使用できます。これにより、開発が簡素化され、データ品質が向上します。注釈を使用すると、データベース・オブジェクトに関するメタデータを格納および取得できます。これらは、名前と値のペアまたは単なる名前です。これらは、アプリケーションがビジネス・ロジックまたはユーザー・インタフェースをカスタマイズするために使用できる自由形式テキスト・フィールドです。

JSONリレーショナル二面性ビュー

JSONリレーショナル二面性ビューは、リレーショナル・データに対する完全に更新可能なJSONビューです。データは非常に効率的な正規化された形式でリレーショナル表に格納されますが、JSONドキュメントの形式でアプリケーションからアクセスできます。

非推奨となった機能

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

  • Oracle Databaseリリース23c以降、暗号化アルゴリズムGOST256およびSEED128は非推奨になり、新しい暗号化キーには使用できなくなりました。それよりも強力な暗号化アルゴリズムAES256またはARIA256の使用をお薦めします。

サポート対象外機能

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

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