カーソルが必要な理由 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vqj1592443206677.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1148
Product Category
Software
Teradata Vantage

宣言されたカーソル

以下の情報は、結果セット カーソルには適用されません。

埋め込みまたはストアド プロシージャのSQL SELECT文は、データ行を1度に1行だけ取得できます。それらのアプリケーション内に複数のデータ行を取得するSELECT文があると、エラーが発生します。

リクエストから検索される行数が分からなければ、SELECTの結果を保持するのに必要なホスト変数の数も分かりません。1つの結果行しか検索できないのにはそのような理由があります。

これは、1行だけを返すように記述したSELECT文、いわゆるシングルトンSELECTでは問題になりません。しかし、SQLクエリーはよく、結果テーブルまたは応答セットの形式で複数の行を返します。これは、処理を行なうプログラミング言語が配備されていない場合によく起きます。

COBOL、C、およびPL/Iなどの従来のプログラミング言語はレコード指向ですが、リレーショナル データベースとその演算子は本質的にセット指向です。

カーソルによって、レコード指向の言語でセット指向のデータを処理できるようになります。カーソルは、結果テーブル内の単一のデータ行を指すポインタだと考えてください。

カーソルでは、埋め込みSQLとストアド プロシージャに固有のSQL文を使用して、スプール ファイルと呼ばれるデータ構造に保持された結果テーブルを1度に1行ずつ順次処理します。

結果セット カーソル

ストアド プロシージャで、最大15個の結果セットを返すように指定できます。

関連情報

結果を返すストアド プロシージャを指定する方法については、ストアド プロシージャからの結果セットの返送およびDECLARE CURSOR (ストアド プロシージャ形式)を参照してください。