2017-04-13 58 views
1

我試圖在while循環中使用select作爲條件。 我想用while循環來比較隨機數字與table09中的數字,而數字不在table09中。但我的腳本以錯誤結束。如何在while循環中使用select作爲條件? 我有這樣的代碼:PL/SQL在while循環中作爲條件選擇

declare 
    my_idadh varchar(14); 
    n number; 
begin 
n:=round(dbms_random.value(10000000000000,99999999999999)); 
my_idadh:=to_char(n); 

while exists(select idadh from table09 where idadh=my_idadh) 
    loop 
    n:=round(dbms_random.value(10000000000000,99999999999999)); 
    idadh:=to_char(n); 
    end loop; 
end; 

謝謝,彼得

+1

的存在條款只適用於sql語句。您的選擇將需要INTO子句來獲取該值,然後在該時段使用。 –

回答

1

,你可以把你的查詢循環內,並且用這樣的變量檢查條件:

V_dummy :=1; 

While (v_dummy = 1) loop 

Begin 

select 1 
Into v_dummy 
from table09 
where idadh=my_idadh 

Exception when no_data_found then 
Exit; 
End; 

-- you loop code here... 

End loop;