DECLARE CURSOR 形式1(カーソル宣言)
機能
問合せ指定の検索結果をFETCH文で1行ずつ取り出すために,カーソルを宣言します。
形式1では,直接指定したカーソル指定に対するカーソルの宣言をします。
使用権限
なし。
形式1<直接指定したカーソル指定に対するカーソルの宣言>
DECLARE カーソル名 CURSOR |
オペランド
カーソルの名称を指定します。
UAP中に指定する場合は,SQLの予約語と同じ名称でも,引用符(")で囲まないでください。ただし,SQLの予約語と同じ名称を手続き中に指定する場合は,引用符(")で囲んでください。
カーソル名については,「1.1.7 名前の指定」を参照してください。
ホールダブルカーソルを使用する場合に指定します。
WITH HOLDは,UNTIL DISCONNECTを指定した場合の機能と同じなので,説明はUNTIL DISCONNECTを参照してください。また,この指定がUNTIL DISCONNECTと重複してもしなくても,機能差はありません。
問合せの内容を表すカーソルを指定します。
カーソル指定については「2.1.1 カーソル指定 形式1」を,問合せ式については「2.2 問合せ式」を,問合せ指定については「2.3 問合せ指定」を,表式については「2.5 表式」を,探索条件については「2.7 探索条件」を参照してください。
問合せをする場合の排他制御モードと,ほかのユーザが資源を占有していた場合の処置を指定します。
排他オプションについては,「2.19 排他オプション」を参照してください。
FOR UPDATE 〔OF列名〔,列名〕…〕をFOR UPDATE句といいます。
ホールダブルカーソルを使用する場合に指定します。
この指定をしたときの機能は,WITH HOLDを指定した場合と全く同じです。また,この指定がWITH HOLDと重複してもしなくても,機能差は生じません。
なお,ホールダブルカーソルについては,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
ホールダブルカーソルについての規則を次に示します。
共通規則
参照制約に関する規則
留意事項
使用例
DECLARE CR1 CURSOR FOR
SELECT SCODE,SNAME,COL,TANKA,ZSURYO
FROM ZAIKO
DECLARE CR1 CURSOR FOR
SELECT * FROM ZAIKO
WHERE TANKA >= 5000
DECLARE CR1 CURSOR FOR
SELECT * FROM ZAIKO
FOR UPDATE
OPEN CR1
FETCH CR1 INTO <各列を取り出す変数名>
UPDATE ZAIKO
SET TANKA = <単価の1割引の値>
WHERE CURRENT OF CR1
INSERT INTO ZAIKO VALUES(<各列の挿入値>)
CLOSE CR1
DECLARE CR1 CURSOR FOR
SELECT * FROM ZAIKO
FOR UPDATE OF TANKA
OPEN CR1
FETCH CR1 INTO <各列を取り出す変数名>
UPDATE ZAIKO
SET TANKA = <単価の1割引の値>
WHERE CURRENT OF CR1
CLOSE CR1
DECLARE CR1 CURSOR FOR
SELECT * FROM ZAIKO
FOR READ ONLY
OPEN CR1
FETCH CR1 INTO <各列を取り出す変数名>
DELETE FROM ZAIKO
WHERE SNAME=N'セーター'
CLOSE CR1