比方说句子select a from tab_x
我想在句子有记录返回的时候执行 select b from tab_y
无记录的时候 select c from tab_z
其他错误的时候报错
怎么写句子简洁点呢
一大串if then esle 太无聊了。。。
begin
begin
select ......
exception
when no_data_found then --找不数据的判断
select ...
end;
select ... ----这里no_data_found的时候时候不要执行的
exception
when others then
raise ;
end;
这样写不对的
------解决方案--------------------
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/search?q=177537
------解决方案--------------------
我習慣用指針,你可以試一試
CREATE OR REPLACE PROCEDURE MyTable
IS
CURSOR rs IS SELECT a FROM tab_x;
ee rs%ROWTYPE;
begin
OPEN rs;
FETCH rs INTO ee;
IF (rs%found) THEN --找到記錄
WHILE (rs%found) LOOP
SELECT b FROM tab_y;
FETCH rs INTO ee;
END LOOP;
ELSE --沒有找到記錄
SELECT c FROM tab_z;
END IF;
CLOSE rs;
END MyTable;