埋め込みSQL

出典: フリー百科事典『ウィキペディア(Wikipedia)』

埋め込みSQL(うめこみ-、: Embedded SQL)は、C/C++COBOLFORTRANPascalAdaJava (SQLJ) といった手続き型プログラミングに、関係データベース(RDBMS)を操作するためのSQLを組み込む手法であり、プログラマはソースコード内部に埋め込みSQLステートメントを直接記述することができるようになる。「組み込みSQL」とも呼ばれる。

SQL標準規格のSQL86(1986年)において、COBOL、FORTRAN、PL/Iなどへの埋め込みSQL文の仕様、SQL89(1989年)において、C言語への埋め込みSQL文の仕様がそれぞれ策定された。

埋め込みSQLステートメントはコンパイル実行前にSQLプリプロセッサによって前処理される。

Oracleデータベースに対する埋め込みSQLのプリプロセッサとしてPro*C/C++が普及しているが、他に、Pro*COBOL、Pro*FORTRAN、Pro*Pascal、SQL*Module などがある。他データベース製品では SybasePostgreSQL (ECPG) がC言語への埋め込みをサポートしている。

サポートするデータベース[編集]

Oracle Database[編集]

Ada
Pro*Ada のサポートは Oracle 7.3 で打ち切られ、Oracle 8 以降は SQL*Module で置き換えられた。しかしそれ以降更新されていない。[1] SQL*Module では埋め込みSQLとして異なるプログラミング方式をモジュール言語として用いる。SQL*Module は Ada83 をサポートする。
C/C++
Pro*C は Oracle 8 より Pro*C/C++ となった。Pro*C/C++ は Oracle Database 21c でサポートされている。[2]
COBOL
Pro*COBOL Oracle Database 21c でサポートされている。[3]
Fortran
Pro*FORTRAN は Oracle 8 以降更新されていないが、バグ修正は継続して行われている[4]
Pascal
Pro*Pascal は Oracle 8 以降更新されていない。[4]
PL/I
Pro*PL/I は Oracle 8 以降更新されていないが、ドキュメントには記載されている。[4]

PostgreSQL[編集]

C/C++
ECPG として PostgreSQL 6.3 以降でサポートされている。C++ のサポートは限定的で、正常に処理できない構文が存在する。

参考文献[編集]

  1. ^ Ada Support in Version 8”. Oracle9i Database Migration, Release 2 (9.2), Chapter 5. Compatibility and Interoperability. オラクル (企業). 2008年7月14日閲覧。
  2. ^ Pro*C/C++リリース・ノート”. オラクル (企業). 2021年11月12日閲覧。
  3. ^ Pro*COBOLプログラマーズ・ガイド”. オラクル (企業). 2021年11月12日閲覧。
  4. ^ a b c Language Alternatives”. Pro*COBOL Precompiler Programmer's Guide, Release 8.0, Chapter 1. Introduction. オラクル (企業). 2008年7月14日閲覧。

外部リンク[編集]