埋込みSQLとは?うめこみエスキューエル
埋込みSQLとは、C言語やCOBOL、Javaなどのホスト言語で書いたプログラムの中に、EXEC SQLで始まるSQL文を直接埋め込んで実行する方式である。プログラム側の変数(ホスト変数)に「:name」の形で値を受け渡し、複数行の結果はカーソルを宣言してOPEN・FETCH・CLOSEの順に1行ずつ読む。支援士では、文字列連結でSQLを組み立てる動的SQLと対比して、SQLインジェクションを防ぐ構造として問われる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
業務処理の多くは、画面制御や帳票出力といった手続きの中でデータベースを読み書きする。SQLだけでは繰り返しや条件分岐が書けず、ホスト言語だけではデータベースに届かないため、両者を1つのソースで繋ぐ仕組みとして埋込みSQLが生まれた。プリコンパイラがSQL文を事前に検査・変換するので、実行時に文の構造が変わらないという性質が、セキュリティ面でも意味を持つ。
具体例
銀行の勘定系や官公庁のCOBOL資産では、IBM Db2やOracleのPro*COBOLといったプリコンパイラがEXEC SQLを通常の関数呼び出しに変換してからコンパイルする。口座番号をホスト変数:accountに入れてSELECTすれば、値は文の一部ではなくパラメータとして渡る。
試験での引っ掛け
埋込みSQLは文の構造が事前に固定される点が要点で、実行時に文字列を連結してPREPARE/EXECUTEする動的SQLとは区別する。動的SQLは柔軟だが、利用者入力を連結すればSQLインジェクションの入口になり、実行計画も毎回作り直すため性能面でも不利になる。プリペアドステートメントは動的SQLの一種でありながら値をパラメータ化するため安全、という三者の整理を混同しない。
関連用語
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。