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) 静的に行う方法

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

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

(2) カーソル

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

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

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

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

(4) 動的に行う方法

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

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