1

複数の行を同時に操作する必要があり、インデックスを作成する必要がある関数を作成しています。Oracle pl/sql について数時間読んだ後、ネストされたテーブルのようなコレクションを作成できると考えました。決定的な答えを見つけることができず、試行錯誤の方法が長くかかるためです。質問の部分は次のとおりです: 質問: ネストされたテーブル コレクションにデータを入力するためのベスト プラクティスは何ですか? Oracle PL/SQL

       type partsTable is table of Parts_north_wing%rowtype;
       pt PartsTable;    
       index number;         
       cursor pCursor is select * from Parts_north_wing;
begin
        index := 1;
        open pCursor;
        loop
                fetch pCursor into tempRow;
                pt(index) := tempRow;
                index := index + 1;
                exit when pCursor%notfound;
        end loop;
        close pCursor;
4

2 に答える 2

2

カーソル FOR LOOP は、ほとんどの場合、PL/SQL で行を処理する最良の方法です。OPEN/FETCH/CLOSE メソッドよりも簡単です。変数を宣言してカーソルを操作する必要はありません。また、結果を自動的に一括収集するため、高速です。

begin
    for pt in
    (
        select parts_north_wing.*, rownum row_index
        from parts_north_wing
    ) loop
        --Do something here
        null;
    end loop;
end;
/
于 2016-04-25T22:09:37.127 に答える