plsql
PSM
OracleDatabase
sql99
sql2008

SQL PSM到来(mariadbサイトにSQL99の規格が公開されているのに対して、Oracle Database 11.2がSQL:2008規格に準拠している事実確認)

More than 1 year has passed since last update.

"今回のリリースのOracle Databaseは、この付録の前の項で説明したように、最新版のSQL規格であるSQL:2008に準拠しています。SQL-92(特にSQL-92のエントリ・レベル)またはSQL:1999は、SQL:2008に置き換えられているため、Oracleは、データベースの今回のリリースがこれらの以前の規格に準拠していることを正式に明示していません。SQL規格の新旧版の間(SQL-92とSQL:1999の間およびSQL:1999とSQL:2008の間の両方)に行われた一部の変更(大部分は小規模なもの)は、アプリケーションに影響を及ぼす可能性があります。影響のある非互換の詳細については、SQL規格またはこの規格に関する説明資料を参照してください。"
http://docs.oracle.com/cd/E16338_01/server.112/b56299/ap_standard_sql013.htm

Oracle Database 11.2が想定以上にSQL:2008という新しいSQLの規格に準拠していることをしり、驚きました。
とすると、Array, LIST, SETなどの、collection系typeにも標準対応していそうなので、いままでよりかなりデータ設計の方式で考え方が変わりそうです。

"2008年7月に採用された最新のSQL規格をSQL:2008といいます。この規格の正式名称は、次のとおりです。

•ANSI/ISO/IEC 9075:2008、『Database Language SQL』、Part 1「SQL/Framework」、Part 2「SQL/Foundation」、Part 3「SQL/CLI」、Part 4「SQL/PSM」、Part 9「SQL/MED」、Part 10「SQL/OLB」、Part 11「SQL/Schemata」、Part 13「SQL/JRT」、ANSI/ISO/IEC 9075-14:2008、『Database Language SQL』、Part 14「SQL/XML」

•ISO/IEC 9075:2008、『Database Language SQL』、Part 1「SQL/Framework」、Part 2「SQL/Foundation」、Part 3「SQL/CLI」、Part 4「SQL/PSM」、Part 9「SQL/MED」、Part 10「SQL/OLB」、Part 11「SQL/Schemata」、Part 13「SQL/JRT」、ISO/IEC 9075-14:2008、『Database Language SQL』、Part 14「SQL/XML」"
(SQL2008がかなり膨大なスペックであることを知りました。)
https://docs.oracle.com/cd/E16338_01/server.112/b56299/intro002.htm

壮絶なる事実を今知りました。まさかのSQLに標準でフロー制御が付いたのですね。しかもOracle databawse 11.2ですでに使用可能なレベルのSQLにフロー制御搭載が来たとすれば、歴史的な、完全なるSQLのみによるプログラミングさえ視野にいれた革命的な規格と規格準拠がわかったと、私は考えています。
("•使用される文は、それぞれが複雑、強力で、スタンドアロン型の文です。これまで、SQLにはフロー制御文は含まれていませんでしたが、最近認められたSQLのオプション部分ISO/IEC 9075-5 : 1996にはフロー制御文が含まれています。フロー制御文は、永続保存モジュール(PSM)としてよく知られており、SQLの拡張機能であるOracleのPL/SQLは、PSMに似ています。")
https://docs.oracle.com/cd/E16338_01/server.112/b56299/intro002.htm

これほどすごい機能がありながら、過去に大量のSQL記事を読んできましたが、PSM(SQLフロー制御)を用いた記事は1件も読んだことがありませんでしたが、これからはすごい便利なSQLによるプログラミング時代が始まりそうです。

SQLの規格における、SQLの機能一覧も復習になったので、記録しておきます。
("SQL文を使用して、次の処理を行うことができます。
•データの問合せ
•表の中の行の挿入、更新、削除
•オブジェクトの作成、置換、変更、削除
•データベースとデータベース・オブジェクトへのアクセス制御
•データベースの一貫性と整合性の保証")