『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 BY
、GROUP BY CUBE
、GROUP BY ROLLUP
およびGROUP BY GROUPING SETS
句で列の別名またはSELECT
の項目の位置を使用できるようになりました。また、HAVING
句で列の別名がサポートされています。これらの機能強化により、GROUP BY
およびHAVING
句を簡単に記述できます。これにより、SQL問合せがはるかに読みやすく、メンテナンスしやすくなると同時に、SQLコードの移植性が向上します。
FROM句なしのSELECT
FROM
句がない、SELECT
式のみの問合せを実行できるようになりました。この新機能により、SQLコードの移植性と使いやすさが向上します。
SQL UPDATE RETURN句の機能強化
INSERT
、UPDATE
およびDELETE
文のRETURNING INTO
句が、それぞれの文の影響を受けた古い値と新しい値を報告するように機能強化されました。これにより、開発者はこれらのDMLタイプのそれぞれに同じロジックを使用して、文の実行前後の値を取得できます。古い値と新しい値は、UPDATE
文についてのみ有効です。INSERT
文では古い値は報告されず、DELETE
文では新しい値は報告されません。
使用状況ドメイン
使用状況ドメインは、スキーマに属するディクショナリ・オブジェクトであり、クレジット・カード番号や電子メール・アドレスなど、共通値のオプション・プロパティおよび制約のセットをカプセル化します。使用状況ドメインを定義した後、そのドメインに関連付ける表の列を定義して、ドメインのオプションのプロパティおよび制約を明示的にそれらの列に適用できます。
使用状況ドメインを使用すると、データを一元的に使用する方法を定義できます。これにより、アプリケーション全体で一貫した方法で値を処理し、データ品質を向上させることが容易になります。
DBMSブロックチェーンのバージョン
ブロックチェーン表の行バージョン機能を使用すると、ユーザー定義列のセットに対応するブロックチェーン表内に保持されている行の複数の履歴バージョンを保持できます。ブロックチェーン表の上部にあるビューbctable_last$
を使用すると、最新バージョンの行のみを表示できます。この機能により、アプリケーションで改ざんされにくいブロックチェーン表を使用するときに行バージョニングを保証できます。
DATE、TIMESTAMPおよびINTERVAL型のCEIL FLOOR
DATE
、TIMESTAMP
およびINTERVAL
の値をCEIL
およびFLOOR
関数に渡すことができるようになりました。これらの関数には、丸め単位を指定するオプションの2番目の引数が含まれています。INTERVAL
値をROUND
およびTRUNC
関数に渡すこともできます。
これらの関数を使用すると、指定した単位の日付と時間の値の上限と下限を簡単に検索できます。
IF [NOT] EXISTS構文のサポート
DDLオブジェクトの作成、変更および削除では、IF EXISTS
およびIF NOT EXISTS
構文修飾子がサポートされるようになりました。これにより、特定のオブジェクトが存在する場合や存在しない場合にエラーが発生するかどうかを制御できます。
注釈
注釈を使用すると、すべてのアプリケーションで同じ方法でデータベース・オブジェクトを使用できます。これにより、開発が簡素化され、データ品質が向上します。注釈を使用すると、データベース・オブジェクトに関するメタデータを格納および取得できます。これらは、名前と値のペアまたは単なる名前です。これらは、アプリケーションがビジネス・ロジックまたはユーザー・インタフェースをカスタマイズするために使用できる自由形式テキスト・フィールドです。
JSONリレーショナル二面性ビュー
JSONリレーショナル二面性ビューは、リレーショナル・データに対する完全に更新可能なJSONビューです。データは非常に効率的な正規化された形式でリレーショナル表に格納されますが、JSONドキュメントの形式でアプリケーションからアクセスできます。