9.8.1 手続き部(操作系)の概要(データベースアクセス機能)
手続き部(操作系)では,操作系とする埋め込みSQL文で記述できるSQL文について記述する。操作系とするSQL文は,次に示す四つに分類できる。
分類 |
SQL文 |
概要 |
---|---|---|
静的 |
SELECT |
表の指定された行から値を取り出す |
INSERT |
表に新しい行を挿入する |
|
DELETE |
表から行を削除する |
|
UPDATE |
表の行を更新する |
|
カーソル |
OPEN |
カーソルを開く |
FETCH |
カーソルを表の次の行に位置づけ,その行を取り出す |
|
CLOSE |
カーソルを閉じる |
|
ストアドプロシージャ |
CALL |
ストアドプロシージャを呼び出す |
動的 |
EXECUTE IMMEDIATE |
動的にSQL文を準備し,実行する |
PREPARE |
動的にSQL文を準備する |
|
DEALLOCATE PREPARE |
動的に準備したSQL文を解放する |
|
EXECUTE |
動的に準備したSQL文を実行する |
- 〈この項の構成〉
(1) 静的に行う方法
静的に行う方法とは,埋め込みSQL文でSQL文を指定する方法である。このため実行時は,変数の値以外,そのSQL文自体の構文を変更できない。
埋め込みSQL文中に埋め込み変数を指定することで変数を使用できる。
(2) カーソル
カーソル(cursor)は,DECLARE CURSOR(カーソル宣言)文で宣言し,OPEN文で開かれ,FETCH文を複数回実行することで表から複数行の値を取り出すことができ,CLOSE文で閉じられる。
また,カーソルをFETCH文によって行に位置づけた場合,UPDATE文,DELETE文の位置づけの構文を使用することで行を更新,削除できる。
-
このシステムでは,カーソル宣言が,カーソル宣言のカーソル名を参照するSQL文よりも,原文中で後方にあってもよい。プログラムが入れ子構造になっている場合,カーソル宣言は,カーソル宣言のカーソル名を参照するSQL文と同一のプログラム中になければならない。