我的代码如下 create or replace procedure testa 

var2 in number, 
var1 in number 

as 
ss number; 
if var1=1 then 
begin 
select id into ss from test where id=var2; 
dbms_output.put_line(var1); 
end; 
end if; 

调用的时候老是报错line 1 ,column 7:,object system.testa is invalid 
请高手指点该怎样写这个if语句 

解决方案 »

  1.   

    这里很多地方不多哟改正后的create or replace procedure testa 

    var2 in number, 
    var1 in number 

    as 
    ss number; 
    begin
    if var1=1 then 
    select id into ss from test where id=var2;
    dbms_output.put_line(var1); 
    end if; 
    end; 

      

  2.   

    谢谢,改过来就好了。顺便再问一句,任何条件判断只能在begin 和 end间吗?
      

  3.   

    这样应该可以了:
    CREATE OR REPLACE PROCEDURE testa(var2 IN NUMBER,var1 IN NUMBER)
    AS
    ss NUMBER;
    BEGINIF (var1=1) THEN
     SELECT id INTO SS FROM test WHERE id=var2;
      DBMS_OUTPUT.PUT_LINE('var1='||var1||';ss='||ss);
    END IF;END testa;
    在SQL*PLUS中调用该过程是:execute  testa(2,1);
      

  4.   

    上边在SQL*PLUS中调用该过程是:execute  testa(2,1);中的2和1你自己可以随便输入。不限于我写的2,1.