1

以下の 2 つのコード ブロックでは、WHEN NO_DATA_FOUND THEN を使用しています。

if outrowcount = 1 then     
  update Extable set CLIENT_COUNT = outCliCount where cname='xxx';  
  outretvalue := 0;
END IF;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
     outretvalue := -1;

また

if outrowcount = 1 then     
   update Extable set CLIENT_COUNT = outCliCount where cname='xxx';  
   outretvalue := 0;  
 else
   outretvalue := -1;
4

1 に答える 1

4

UPDATE ステートメントが NO_DATA_FOUND 例外をスローすることはありません。たとえば、SQL%ROWCOUNT を使用して確認できる、暗黙的な SQL カーソル状態のみを設定します。だからあなたのサンプルは

update Extable set CLIENT_COUNT = outCliCount where cname='xxx'; 
if SQL%ROWCOUNT = 0 then
  outretvalue := -1;
else
  outretvalue := 0;
end if;
于 2012-11-07T07:14:15.897 に答える