皆さん、こんにちは皆私は少しPL/SQLに慣れていますので少し混乱します。私はrec
と呼ばれるカーソルを持っていると私は2つの入れ子になっているIFステートメントをそれを通してループしている。PL/SQlネストされたループif内部ループが終了しない
IF
を満たす一つのレコードを持っている時はいつでも
CURSOR Cur IS
SELECT Mil.Id,
Mil.Record_Num,
Mil.Status,
Mil.file_processed,
Mil.Updated_By
FROM status_log mil
WHERE Mil.file_processed != 'Processed'
For Update of Mil.file_processed;
FOR Rec IN Cur LOOP
IF (Rec.status = 'Ready' OR Rec.status = 'Go') THEN
IF Length(Rec.Zip) = 5 AND
(Substr(Rec.Zip, 1, 3) = '303' OR
Substr(Rec.Zip, 1, 3) = '304') THEN
l_state:= 'ATL';
END IF;
UPDATE status_log mil
SET file_processed = 'Processed'
WHERE current of cur
END IF;
COMMIT;
END LOOP;
その後そのレコードとすべてのレコードに対してもうupdate
文を打つdoesntの(すなわちZipは、長さが5で、コードが303または304で始まります) 。私はIF
ループのロジックの後にEXIT
ステートメントを使ってみましたが役に立たなかった。私は間違って何をしていますか?あなたのCURSOR
定義が問題になる可能性があるテーブルstatus_log
を...含むか除外かどうかを確認するために
は、カーソル、および「何かをするコード」を投稿してください:) –
は、エラーをスローし、静かに出ているいずれかのチャンスはありますか? (つまり、あなたの手続きに '他の人がnullになったときに例外が発生します。 ') – Allan
こんにちは、私はちょうど特定の値に変数を設定する何かをするコード。私はそれをコメントして、空のブロックで実行しようとしたが、同じ問題があったので、そのコードは責任を負いません。ビットチェックアップデートを編集しました。 – Eosphorus