スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
ALLOCATE CURSOR文 形式2(結果集合カーソル割当て)
機能
手続きから返却された順序付けられた結果集合の組に対してカーソルを割り当てます。
使用権限
形式2<手続きから返却された結果集合の組に対するカーソル割当て>
ALLOCATE 拡張カーソル名 FOR
PROCEDURE 〔認可識別子.〕ルーチン識別子
|
オペランド
- 拡張カーソル名
割り当てるカーソルの拡張カーソル名を指定します。
拡張カーソル名については,「2.27 拡張カーソル名」を参照してください。
- 〔認可識別子.〕ルーチン識別子
- 認可識別子
- カーソルを割り当てる結果集合を返却した手続きの,所有者の認可識別子を指定します。
- パブリック手続きに対してカーソルを割り当てる場合は,認可識別子に引用符(")で囲んだ大文字のPUBLICを指定します。
- ルーチン識別子
- カーソルを割り当てる結果集合を返却した手続きの,ルーチンの名前を指定します。
共通規則
- 現行SQLセッション(HiRDBの接続から切断まで)内で既に呼び出した手続きを指定してください。
- 現行SQLセッション内で指定した手続きを2回以上呼び出した場合は,最後に呼び出したときに手続きが返却した結果集合の組にカーソルを割り当てます。
- 指定した手続きのうち,最後に呼び出した手続きが返却した結果集合の組に,既にカーソルを割り当てている場合はエラーとなります。
- 指定した手続きが一つも結果集合を返却しない場合,次のリターンコードが設定されます。
- SQL連絡領域のSQLCODE領域に100
- SQLCODE変数に100
- SQLSTATE変数に'02001'
- ALLOCATE CURSOR文を実行すると,カーソルは,手続きから返却された結果集合のうち,最初の結果集合を参照し,FETCH文によってその結果集合のデータを取り出せます。2個目以降の結果集合を参照するには,CLOSE文を実行します。CLOSE文を実行し,次のリターンコードが設定された場合,次の結果集合が存在し,カーソルは次の結果集合を参照します。
- SQL連絡領域のSQLCODE領域に121
- SQLCODE変数に121
- SQLSTATE変数に'0100D'
また,CLOSE文を実行し,次のリターンコードが設定された場合,次の結果集合は存在しません。この場合,拡張カーソル名はどのカーソルも識別しなくなります。
- SQL連絡領域のSQLCODE領域に100
- SQLCODE変数に100
- SQLSTATE変数に'02001'
- 割り当てられたカーソルの定義は,参照している結果集合を生成した手続き中のカーソル宣言と同じになります。
- 割り当てられたカーソルは,開いた状態となります。
- 割り当てられたカーソルの位置は,手続き終了時のカーソル位置となります。
- 外部表,又は外部表を基表とするビュー表を指定したSQL文では,カーソルを使用した更新及び削除はできません。
- パブリック手続きに対してカーソルを割り当てる場合は,認可識別子に引用符(")で囲んだ大文字のPUBLICを必ず指定してください。
留意事項
- 指定した拡張カーソル名が既にその有効範囲内で割り当てられている場合はエラーとなります。
使用例
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.