COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

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) 静的に行う方法
(2) カーソル
(3) ストアドプロシージャ
(4) 動的に行う方法

(1) 静的に行う方法

静的に行う方法とは,埋め込みSQL文でSQL文を指定する方法である。このため実行時は,変数の値以外,そのSQL文自体の構文を変更できない。

埋め込みSQL文中に埋め込み変数を指定することで変数を使用できる。

(2) カーソル

カーソル(cursor)は,DECLARE CURSOR(カーソル宣言)文で宣言し,OPEN文で開かれ,FETCH文を複数回実行することで表から複数行の値を取り出すことができ,CLOSE文で閉じられる。

また,カーソルをFETCH文によって行に位置づけた場合,UPDATE文,DELETE文の位置づけの構文を使用することで行を更新,削除できる。

(3) ストアドプロシージャ

ストアドプロシージャ(stored procedure)は,データベースに格納された一連の手続きとする。ストアドプロシージャを呼び出すことによってその一連の手続きを実行する。ストアドプロシージャを使用すると,ユーザ宣言の変数,条件付き実行などのプログラミング機能をデータベース内で使用できる。

(4) 動的に行う方法

動的に行う方法とは,実行時に動的に SQL文を構成する方法である。この実行時に構成するSQL文を,以降では動的SQLとする。動的SQLは,接続データベースによって構文,機能およびその動作が規定される。

動的SQL中にパラメタマーカと呼ぶ疑問符(?)を指定し,これにUSING句で埋め込み変数を対応づけることで変数を使用できる。