埋め込みSQL

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

これはこのページの過去の版です。TXiKiBoT (会話 | 投稿記録) による 2010年8月12日 (木) 08:14個人設定で未設定ならUTC)時点の版 (ロボットによる 追加: zh:嵌入式SQL)であり、現在の版とは大きく異なる場合があります。

埋め込み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 11g でサポートされている。
COBOL
Pro*COBOL Oracle Database 11g でサポートされている。
Fortran
Pro*FORTRAN は Oracle 8 以降更新されていないが、バグ修正は継続して行われている[2]
Pascal
Pro*Pascal は Oracle 8 以降更新されていない。[2]
PL/I
Pro*PL/I は Oracle 8 以降更新されていないが、ドキュメントには記載されている。[2]

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. ^ a b c Language Alternatives”. Pro*COBOL Precompiler Programmer's Guide, Release 8.0, Chapter 1. Introduction. オラクル (企業). 2008年7月14日閲覧。

外部リンク