埋め込みSQL
表示
(組込みSQLから転送)
埋め込みSQL(うめこみ-、英: Embedded SQL)は、C/C++、COBOL、FORTRAN、Pascal、Ada、Java (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 などがある。他データベース製品では Sybase や PostgreSQL (ECPG) がC言語への埋め込みをサポートしている。
サポートするデータベース
[編集]- 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]
- C/C++
- ECPG として PostgreSQL 6.3 以降でサポートされている。C++ のサポートは限定的で、正常に処理できない構文が存在する。
参考文献
[編集]- ^ “Ada Support in Version 8”. Oracle9i Database Migration, Release 2 (9.2), Chapter 5. Compatibility and Interoperability. オラクル (企業). 2008年7月14日閲覧。
- ^ “Pro*C/C++リリース・ノート”. オラクル (企業). 2021年11月12日閲覧。
- ^ “Pro*COBOLプログラマーズ・ガイド”. オラクル (企業). 2021年11月12日閲覧。
- ^ a b c “Language Alternatives”. Pro*COBOL Precompiler Programmer's Guide, Release 8.0, Chapter 1. Introduction. オラクル (企業). 2008年7月14日閲覧。