スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

ALLOCATE CURSOR文 形式2結果集合カーソル割当て

機能

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

使用権限

なし。

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

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

オペランド

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

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

共通規則

  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. 外部表,又は外部表を基表とするビュー表を指定したSQL文では,カーソルを使用した更新及び削除はできません。
  10. パブリック手続きに対してカーソルを割り当てる場合は,認可識別子に引用符(")で囲んだ大文字のPUBLICを必ず指定してください。

留意事項

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

使用例

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