当前位置: 代码迷 >> Oracle管理 >> oracle 存储过程 如何少用 if then
  详细解决方案

oracle 存储过程 如何少用 if then

热度:102   发布时间:2016-04-24 05:47:28.0
oracle 存储过程 怎么少用 if then
比方说句子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;
  相关解决方案