请问在Oracle过程中,如何根据传递的参数值不同,检索的表就不同呢?如下意思:(语法是错误的)
CREATE OR REPLACE PROCEDURE FACHGQUERY_PRO(changeTyp IN VARCHAR2)
AS
BEGIN 
   if (changeTyp>='2')
   THAN (SELECT FIA00007 FROM FIA02);
   if (changeTyp<'2')
   THAN (SELECT FIA00007 FROM FIA03);   
  else (SELECT FIA00007 FROM FIA04);   
   end if;
END;
/
因为小弟要根据这个参数检索10多个表,希望调用这个过程,减少开发量
非常感谢!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    THAN 你这里都写错了 then
      

  2.   

     CREATE OR REPLACE PROCEDURE FACHGQUERY_PRO(changeTyp IN VARCHAR2)
     AS
     BEGIN
       if (changeTyp>='2') THEN
         execute immediate 'SELECT FIA00007 FROM FIA02';
       elsif (changeTyp <'2') THEN
         execute immediate 'SELECT FIA00007 FROM FIA03';
       else
         execute immediate 'SELECT FIA00007 FROM FIA04';
       end if;
     END;
     /