埋込みSQLとは?うめこみエスキューエル
埋込みSQLとは、C言語やCOBOLなどのプログラムの中に、EXEC SQL で始まる形でSQL文を直接書き込む方式。プログラム側の変数(ホスト変数)に「:」を付けてSQLへ渡し、結果も同じ変数で受け取る。複数行が返る問合せは、カーソルを宣言して1行ずつ読み進める。
最終更新:2026-10-09
この語が出る過去問を解く →背景
SQLは表をまとめて操作する言語で、1件ずつ条件分岐しながら進む手続き型のプログラムとは考え方が噛み合わない。業務アプリは画面表示や帳票の都合で1行ずつ扱いたいので、両者をつなぐ約束事が必要になる。その橋渡しがホスト変数とカーソルであり、これを言語仕様として定めたのが埋込みSQLである。試験ではカーソルの宣言・OPEN・FETCH・CLOSEの順序が問われる。
具体例
COBOLの在庫管理プログラムで EXEC SQL SELECT 在庫数 INTO :zaiko FROM 商品 WHERE 商品コード = :code END-EXEC. と書くと、変数codeの値で検索した結果が変数zaikoに入る。画面から入力された商品コードをそのまま検索条件に使える。
試験での引っ掛け
実行時まで文の形が決まらない場合は動的SQLを使い、PREPAREで組み立ててEXECUTEする。埋込み(静的)SQLはコンパイル時に実行計画を作れる分だけ速く、動的SQLは柔軟だが実行のたびに解析が要る、という損得の向きを取り違えやすい。カーソルを使わずに複数行を1つのホスト変数へ受け取ることはできない。
関連用語
出た過去問
出典:平成30年度 春期 基本情報技術者試験 午前 問28(IPA)
次の埋込みSQLを用いたプログラムの一部において、Xは何を表す名前か。 EXEC SQL OPEN X; EXEC SQL FETCH X INTO :NAME…
正解:カーソル
要点:埋込みSQLはカーソルで結果を1行ずつ処理する
埋込みSQLでは、複数行の検索結果を1行ずつ順に取り出すためにカーソルを使う。OPENで結果集合を開き、FETCHで現在行を変数に取り出し、WHERE CURRENT OF でその行を更新し、CLOSEで閉じるという一連の操作はカーソルに対するものである。
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。