0
これは私のPL/SQLでWHILE以下LOOPコード:私は、このwhileループを実行空白の結果を取得中にPL/SQLのループ
SET SERVEROUTPUT ON;
DECLARE
l_check NUMBER;
BEGIN
WHILE (l_check < 5)
LOOP
l_check := l_check + 1;
DBMS_OUTPUT.PUT_LINE(l_check);
END LOOP;
END;
は、それがメッセージに表示されていることPL/SQLプロシージャが正常に完了しました。しかし、SET SERVEROUTPUT ONを使用していても空白の結果が出ます。
DECLARE l_check番号:
は、ループの前に変数を初期化しようとし= 1。 (l_check <5) l_check:= l_check + 1; END LOOP; END; l_check:= l_check + 1の前にDBMS_OUTPUT文を置いたときに機能しました。 – stranger
@stranger - 重要な変更は 'l_check NUMBER:= 1;'です。変数に値を代入すると、WHILE条件をテストするときにnullではないことを意味します。 – APC
(DECLAREセクションまたは実行セクション内で)初期値(0または1など)を実行し、 'l_check'の現在の値(インクリメント前またはインクリメント後)は、正確にどの値が出力されるか以外はほとんど効果がありません。彼らはすべて同じように動作します。値を1から4または1から5などにしたい場合は、初期値、 'PUT_LINE'コマンドの配置、および/または終了条件を調整することができます(' l_check <5'と ' = 5 'など) – mathguy