0

次のデータを含むhataテーブルがあります。

| sube  |  error_message |
--------------------------
|  5    |   sdadasdasdas |
|  5    |   sadadsadasda |
|  7    |   sadsadaslkgk |
|  7    |  aasdasdkfsjdj |
|  9    |   sjsjfjssdf   |

次のカーソルがあります。

current_sube    NUMBER := 0;

CURSOR c_error
   IS 
   select sube, error_message
   from hata
   order by sube;

私はこれを次のように取得しています

OPEN c_error;
    LOOP
    BEGIN

    FETCH c_error INTO hata_mail; 

    ----
    IF hata_mail.sube = current_sube
       add row to array;

    ELSE 
         do my job;
         empty array;
         current_sube = hata_mail.sube;

    ----

    END;
    END LOOP;

CLOSE c_error;

私の質問はFETCH声明から始まります。

フェッチされた行ごとに、subecurrent_subeが同じ場合は行を配列に追加し、そうでない場合は特定のジョブを実行して配列を空にします。

このロジックは最後の行まで機能します。最後の行には空の配列があり、特定の仕事をすることができなかったからです。

これを達成するための提案はありますか?

4

1 に答える 1

1

ステートメントのcurrent_sube前に変数を設定し、 を使用して最後の行を確認します。fetchcursor%rowcount

于 2013-11-08T12:54:40.293 に答える