1. 程式人生 > >oracle procedure 對將要賦值進行判斷,否則會報異常

oracle procedure 對將要賦值進行判斷,否則會報異常

當你將查出來的值,into給一個定義的變數的時候,首先判斷是否查詢出來值。

create or replace procedure  procedureName(
parameterName   in  parameterType
parameterName   out  parameterType 
) 
as
testStr   varchar2(30);
checkNum  ineger;
begin
select  t.col1  into testStr  from   tableA  t   where   t.testVar = condition_str;
/*
當你在執行上面的sql時,可能會出現三種情況:
1. 沒有查詢出資料,into給testStr  會報 ORA-01403 
2. 查詢出多條資料,into給testStr  也會報異常(具體什麼忘記了)
3. 查詢出一條資料,是正確的
改正,如下:
*/
在執行上面語句前,請新增一句:
select  count(*)   into checkNum   from  tableA  t   where  t.testVar = condition_str;
if   checkNum =0     --查詢不存在情況
then
---分別處理
elsif  checkNum >1 --查詢大於1情況
then
--分別處理
end if;

end;