バルクバインド(BULK BIND)の例

セレクト結果を一行づつ処理したいってとき、BULK BIND(BULK FETCHもあるみたい)っていうこともoracleではできるんですね。

-- バルクバインドの例
SET SERVEROUTPUT ON

DECLARE
  TYPE TLINE IS TABLE OF テーブル名%ROWTYPE INDEX BY BINARY_INTEGER;
  vLINE TLINE;
BEGIN
  SELECT * BULK COLLECT INTO vLINE FROM テーブル名;
  FOR i IN 1 .. vLINE.COUNT
  LOOP
    DBMS_OUTPUT.PUT_LINE('No=' || vLINE(i).カラム名);
  END LOOP;
  DBMS_OUTPUT.PUT_LINE('取得行=' || vLINE.COUNT);
END;
/

参照は以下。

連載 PL/SQLを使ってみよう!第61回「バルク・バインド(SELECT BULK COLLECT INTOの場合)」 | 集合研修 システム・テクノロジー・アイ銀座会場

ちなみに、BULK FETCHは以下。

バルクフェッチ - オラクル・Oracle PL/SQL 入門