Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


4.3.1 ALLOCATE CURSOR文 形式2の形式と規則

〈この項の構成〉

(1) 機能

手続きから返却された順序付けられた結果集合の組に対してカーソルを割り当てます。

(2) 使用権限

なし。

(3) 形式2<手続きから返却された結果集合の組に対するカーソル割当て>

 ALLOCATE 拡張カーソル名 FOR 
    PROCEDURE 〔認可識別子.〕ルーチン識別子

(4) オペランド

(a) 拡張カーソル名

割り当てるカーソルの拡張カーソル名を指定します。

拡張カーソル名については,「拡張カーソル名」を参照してください。

(b) 〔認可識別子.〕ルーチン識別子

認可識別子

カーソルを割り当てる結果集合を返却した手続きの,所有者の認可識別子を指定します。

パブリック手続きに対してカーソルを割り当てる場合は,認可識別子に引用符(")で囲んだ大文字のPUBLICを指定します。

ルーチン識別子

カーソルを割り当てる結果集合を返却した手続きの,ルーチンの名前を指定します。

(5) 共通規則

  1. 現行SQLセッション(HiRDBの接続から切断まで)内で既に呼び出した手続きを指定してください。

  2. 現行SQLセッション内で指定した手続きを2回以上呼び出した場合は,最後に呼び出したときに手続きが返却した結果集合の組にカーソルを割り当てます。

  3. 指定した手続きのうち,最後に呼び出した手続きが返却した結果集合の組に,既にカーソルを割り当てている場合はエラーとなります。

  4. 指定した手続きが一つも結果集合を返却しない場合,次のリターンコードが設定されます。

    • SQL連絡領域のSQLCODE領域に100

    • SQLCODE変数に100

    • SQLSTATE変数に’02001’

  5. ALLOCATE CURSOR文を実行すると,カーソルは,手続きから返却された結果集合のうち,最初の結果集合を参照し,FETCH文によってその結果集合のデータを取り出せます。2個目以降の結果集合を参照するには,CLOSE文を実行します。CLOSE文を実行し,次のリターンコードが設定された場合,次の結果集合が存在し,カーソルは次の結果集合を参照します。

    • SQL連絡領域のSQLCODE領域に121

    • SQLCODE変数に121

    • SQLSTATE変数に’0100D’

    また,CLOSE文を実行し,次のリターンコードが設定された場合,次の結果集合は存在しません。この場合,拡張カーソル名はどのカーソルも識別しなくなります。

    • SQL連絡領域のSQLCODE領域に100

    • SQLCODE変数に100

    • SQLSTATE変数に’02001’

  6. 割り当てられたカーソルの定義は,参照している結果集合を生成した手続き中のカーソル宣言と同じになります。

  7. 割り当てられたカーソルは,開いた状態となります。

  8. 割り当てられたカーソルの位置は,手続き終了時のカーソル位置となります。

  9. パブリック手続きに対してカーソルを割り当てる場合は,認可識別子に引用符(")で囲んだ大文字のPUBLICを必ず指定してください。

(6) 留意事項

  1. 指定した拡張カーソル名が既にその有効範囲内で割り当てられている場合はエラーとなります。

(7) 使用例

使用例については,「結果集合返却機能」を参照してください。