比方说句子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;这样写不对的

解决方案 »

  1.   

    你这样更难看,用if then elsif else不好吗?
      

  2.   

    你这样写 比用IF THEN 还会难看   只要把格式整好   IF THEN 是很好看的
      

  3.   

    用exception 比if else 还要难看呢,调整格式的事情可以交给工具去做
    ex:plsql里面自动调整格式的那个beautifier按钮就可以把格式调整的非常整齐好看
      

  4.   

    我習慣用指針,你可以試一試
    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;
      

  5.   

    我也习惯用
    if then

    case when