2018年06月25日
SQL DECLAREの利用
DECLAREはローカル変数の宣言と、「カーソル」を宣言する際に使用する
【ローカル変数の宣言】
DECLARE (変数名)(データ型)
DELCLAREで宣言する変数はローカル変数なので、ストアドプロシージャの実行が終わった段階で
自動的に使用できなくなる
【カーソル利用方法】
カーソル:SELECT文の実行結果を1行ずつ取り出すことができる
■カーソルの宣言
DECLARE [カーソル名] CURSOR FOR [カーソルを使用するSELECT文];
■カーソルを開く
OPEN [カーソル名];
■1行ごとにデータを取り出す指示
FETCH NEXT FROM [カーソル名] INTO [変数名];
カーソルからデータを取り出すためには、次のような作業が必要となる
1.「LOOP」文または「WHILE」文を使って、ループ処理を実行する
2.ループ処理の中で「FETCH」文を実行し、カーソルから1行取り出す
3.最後の行を取り出したらループ処理を終了する
変数名は、SELECT文で取り出される列の数と同じである必要がある。
※3つの列を取り出すSELECT文をDECLARE CURSORで宣言した場合は、3つの変数を指定する。
■データの行数分ループ処理を実行する
WHILE @@FETCH_STATUS = 0
BEGIN
(ループ内の処理)
FETCH NEXT FROM [カーソル名]
INTO [変数名];
END;
※@@FETCH_STATUS:最後の行を超えたときは-2が設定される
■カーソルを終了
CLOSE カーソル名;
DEALLOCATE カーソル名;
【ローカル変数の宣言】
DECLARE (変数名)(データ型)
DELCLAREで宣言する変数はローカル変数なので、ストアドプロシージャの実行が終わった段階で
自動的に使用できなくなる
【カーソル利用方法】
カーソル:SELECT文の実行結果を1行ずつ取り出すことができる
■カーソルの宣言
DECLARE [カーソル名] CURSOR FOR [カーソルを使用するSELECT文];
■カーソルを開く
OPEN [カーソル名];
■1行ごとにデータを取り出す指示
FETCH NEXT FROM [カーソル名] INTO [変数名];
カーソルからデータを取り出すためには、次のような作業が必要となる
1.「LOOP」文または「WHILE」文を使って、ループ処理を実行する
2.ループ処理の中で「FETCH」文を実行し、カーソルから1行取り出す
3.最後の行を取り出したらループ処理を終了する
変数名は、SELECT文で取り出される列の数と同じである必要がある。
※3つの列を取り出すSELECT文をDECLARE CURSORで宣言した場合は、3つの変数を指定する。
■データの行数分ループ処理を実行する
WHILE @@FETCH_STATUS = 0
BEGIN
(ループ内の処理)
FETCH NEXT FROM [カーソル名]
INTO [変数名];
END;
※@@FETCH_STATUS:最後の行を超えたときは-2が設定される
■カーソルを終了
CLOSE カーソル名;
DEALLOCATE カーソル名;
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7817940
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック