create or replace procedure p
    (v_a in number,v_b number,v_ret out number,v_temp in out number)
as
begin
  if(v_a > v_b) then
    v_ret := v_a;
  else 
    v_ret := v_b;
  end if 
    v_temp := v_temp+1;
end;    
  行号=   1   列号=   29   错误文本=   PLS-00103:   出现符号   "CREATE"在需要下列之一时:     (   ;   is   with   authid   as         cluster   compress   order   using   compiled   wrapped   external         deterministic   parallel_enable   pipelined 
不知是什么问题,大伙帮忙解决些哟!

解决方案 »

  1.   

    end if后面少了一个分号create or replace procedure p 
        (v_a in number,v_b number,v_ret out number,v_temp in out number) 
    as 
    begin 
      if(v_a > v_b) then 
        v_ret := v_a; 
      else 
        v_ret := v_b; 
      end if;
        v_temp := v_temp+1; 
    end; 
      

  2.   

    END IF 少了个分号create or replace procedure p(v_a    in number,
                                  v_b    number,
                                  v_ret  out number,
                                  v_temp in out number) as
    BEGIN
      begin
        if (v_a > v_b) then
          v_ret := v_a;
        else
          v_ret := v_b;
        end if;
      
        v_temp := v_temp + 1;
      end;EXCEPTION
      WHEN OTHERS THEN
        NULL;
      
    END P;
      

  3.   

     行号=  1  列号=  29  错误文本=  PLS-00103:  出现符号  "CREATE"在需要下列之一时:    (  ;  is  with  authid  as        cluster  compress  order  using  compiled  wrapped  external        deterministic  parallel_enable  pipelined 
    还是这样的问题!你帮我测试下看,难道我oracle安装出问题了么
      

  4.   


    create or replace procedure p 
        (v_a in number,v_b number,v_ret out number,v_temp in out number) 
    is  ----把as 改为 is 试试 
    begin 
      if(v_a > v_b) then 
        v_ret := v_a; 
      else 
        v_ret := v_b; 
      end if 
        v_temp := v_temp+1; 
    end; 
      

  5.   

    改is也是不行,还是一样,谁装oracle了的帮忙测试下看
      

  6.   

    -- 可能拷贝存储过程代码的时候有特殊字符:
    SQL> CREATE OR REPLACE PROCEDURE PP_TEST(V_A    IN NUMBER,
      2                                      V_B    NUMBER,
      3                                      V_RET  OUT NUMBER,
      4                                      V_TEMP IN OUT NUMBER) AS
      5  BEGIN
      6    IF (V_A > V_B) THEN
      7      V_RET := V_A;
      8    ELSE
      9      V_RET := V_B;
     10    END IF;
     11  
     12    V_TEMP := V_TEMP + 1;
     13  END;
     14  /Procedure created
      

  7.   

    我在PLSQL编译通过了的可能是你的ORACLE有问题吧,还有你的v_b也有点问题哈,我再改了下:create or replace procedure p(v_a    in number,
                                  v_b    in number,
                                  v_ret  out number,
                                  v_temp in out number) as
    BEGIN
      begin
        if (v_a > v_b) then
          v_ret := v_a;
        else
          v_ret := v_b;
        end if;    v_temp := v_temp + 1;
      end;EXCEPTION
      WHEN OTHERS THEN
        NULL;END P;再试下,还有问题的话,我就没办法了我技术还是太差了,只能看出这么多了
      

  8.   

    哦,都谢谢了,可能是我oracle有问题!