IT資格用語解説基本情報技術者試験・データベース言語
埋込み SQL
更新日:
用語解説
埋込みSQLは、C、COBOLなどのホスト言語のソースコード中へSQL文を記述し、プログラムからDBを操作する方式です。通常、プリコンパイラがSQL部分をDBMSの実行時ライブラリ呼出しへ変換します。
■ 試験で押さえるポイント
ホスト言語中ではEXEC SQLなどの印を付けてSQLを記述し、SQLとプログラムの間で値を渡すホスト変数は:変数名のように区別します。
複数行の検索結果はカーソルをDECLAREし、OPEN、FETCHの反復、CLOSEの順に処理します。一行だけの結果はSELECT INTOでホスト変数へ受け取れる場合があります。
静的SQLは文の構造をコンパイル時に把握でき、構文・型を事前検査しやすい方式です。実行時に文字列から文を組み立てる動的SQLは柔軟ですが、パラメータ化しないとSQLインジェクションの危険があります。
埋込みSQLはホスト言語の文法そのものではないため、専用プリコンパイル工程が必要です。JDBCやODBCのようにAPI関数へSQL文字列を渡すコールレベルインタフェースとは方式が異なります。
■ 選択肢での判断ポイント
ホスト言語、プリコンパイラ、EXEC SQL、ホスト変数、カーソルが手掛かりです。対話端末への直接入力や、SQL文字列をAPIだけで渡す方式と区別します。
例: CプログラムでEXEC SQL SELECT 氏名 INTO :name FROM 社員 WHERE 社員番号=:id;と書き、プリコンパイル後にidをDBへ渡して結果をnameへ受け取ります。