oracle procedure 對將要賦值進行判斷,否則會報異常
阿新 • • 發佈:2018-11-30
當你將查出來的值,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;