茨の道も一歩から

インフラ構築からプログラミング(Python・JavaScript)までITに関するブログです。

データベース:カーソル

■ カーソル

  • SQL文の結果が複数行になる場合で、プログラムの要求により、1行毎に処理する必要がある場合に、カーソルを使用する。

カーソルの定義(DECLARE CURSOR文)

  • カーソルを使用するには、まずカーソルを定義する。

DECLARE CURSORの構文

DECLARE カーソル名 CURSOR FOR SELECT文;

カーソルの操作

  • カーソルの操作には、OPEN、FETCH、CLOSEがある。
命令 説明
OPEN カーソルを開く命令
FETCH カーソルのさす行からデータを変数に取り出して、次の行に進む命令
CLOSE カーソルを閉じる命令
  • 操作の流れとしては、OPEN → FETCH → CLOSE となる。

以下のテーブルを参考に説明する。

[テーブル]

項番 氏名
0001 ホムペ太郎
0002 ブログ次郎
0003 ソシャ三郎

OPEN命令の構文

OPEN カーソル名;

[テーブル]

項番 氏名
→0001 ホムペ太郎
0002 ブログ次郎
0003 ソシャ三郎

→:カーソルの指す行


FETCH命令の構文

FETCH カーソル名 INTO 変数名;

[テーブル]

項番 氏名
0001 ホムペ太郎
→0002 ブログ次郎
0003 ソシャ三郎

→:カーソルの指す行

項番 氏名
0001 ホムペ太郎

この行を変数に取り出して、次の行へ移動


CLOSE命令の構文

CLOSE カーソル名;

カーソルによるデータ更新のSQL

UPDATE テーブル名 SET 列名1 = 値1,列名2 = 値2,…
WHERE CURRENT OF カーソル名;

カーソルによるデータ削除のSQL

DELETE FROM テーブル名 WHERE CURRENT OF カーソル名;

【試験対策】

  • カーソルには、定義構文と、3つの操作構文がある。
  • カーソルの現在位置を指定するには、CURRENT OF カーソル名とする。

目次へ戻る