動的SQL形式のDECLARE CURSORでは、カーソルと動的SQL文を関連付けます。
動的SQL文は、以下のいずれかになります。
- データを返す文
- Teradata SQLマクロ
- マクロおよびデータを返す文を含む、サポートされている文の組み合わせの入った任意のリクエスト
- Teradataストアド プロシージャ
ANSI準拠
ANSI/ISO SQL:2011準拠。
必要な権限
なし。
構文
DECLARE cursor_name [SCROLL] CURSOR FOR statement_name
構文要素
- cursor_name
- 任意の有効なSQL識別子。
- SCROLL
- 宣言されたカーソルが、FETCH指向の宣言に基づいて応答セット内の行を取り出せます。
- statement_name
- 以前に準備された文に関連付けられた名前。
使用上の注意
- 有効な準備済み動的SQL文は次のとおりです。
- 単一の、データを返さない非マクロ文。
- 単一のSELECT文(INTO句なしで指定すること)。
- 単一のEXEC macro_name文。
- 上記のどの文でも組み込むことができる複文リクエスト。
- 使用上の注意(すべての形式)
- statement_nameで指定した文をPREPAREしてから、そのトランザクション内で動的カーソルをOPENしなければなりません。
- 与えられたstatement_nameに対して宣言できる動的カーソルは1つだけです。
- SELECT AND CONSUMEカーソルに対するDELETEまたはUPDATE埋め込みSQL文は指定できません。
キュー テーブルのカーソルは、PP2 ANSIモードでは常に読み取り専用になります。このため、PP2 ANSIモードのキュー テーブル カーソルに対しては、位置指定されたDELETEまたはUPDATE(つまり、最後に取り出されたカーソル行の削除または更新)を指定できません。
- PP2 ANSIモードの複文リクエストでは、スクロール可能カーソルを使用できません。
例: 動的なDECLARE CURSOR文の使用
動的DECLARE CURSOR文の形式は次のとおりです。
DECLARE Ex CURSOR FOR DynStmt7
関連情報
- DECLARE CURSORの動的SQL形式については、DECLARE CURSOR (動的SQL形式)を参照してください
- SCROLLについては、FETCH (埋め込みSQL形式)を参照してください。