埋込みSQLとは?うめこみエスキューエル
埋込みSQLとは、C言語やCOBOLなどのプログラムの中へ直接SQL文を書き込む方式。EXEC SQLで始まる部分をプリコンパイラが取り出して変換し、値のやり取りはホスト変数で行う。複数行が返る問合せではカーソルを宣言し、OPEN・FETCH・CLOSEで1行ずつ受け取る形をとる。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
SQLは集合をまとめて扱う言語で、1件ずつ順に処理していくプログラム言語とは値の単位が合わない。この食い違いを埋めるために、値の受渡しをホスト変数に、集合から1行ずつ取り出す仕事をカーソルに担わせた。文を先に解析しておけるので実行時の解析を省ける利点もある。いまのアプリケーションがAPI経由で接続する形も、内部では同じ問題を同じ道具立てで解いている。
具体例
EXEC SQL SELECT 氏名 INTO :name FROM 社員 WHERE 社員番号 = :no; と書けば、変数noの値で検索した結果が変数nameへ入る。複数行を扱うときは EXEC SQL DECLARE 名前 CURSOR FOR ... と宣言し、FETCHで順に読み進める。
試験での引っ掛け
実行時になって初めて文の形が決まる場合は動的SQLを使い、PREPAREで解析してからEXECUTEする。実行計画を事前に作れないぶん性能で不利になりやすく、文字列を継ぎ足して組み立てる作りはSQLインジェクションの入口にもなる。分かれ目は、文が固定かどうかである。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。