你的过程有误(编译没有通过吧)create procedure test1(na varchar2) 
is
begin
delete from test where name=na;
end;
/

解决方案 »

  1.   

    参数不能声明范围。begin
    test1('anmmy');
    end;
    /
      

  2.   

    存储过程出错了
    create procedure test1 (na in varchar2)
    as
    begin
      delete from test where name = na;
    end;
      

  3.   

    我是在把Sysbase 转换成Oracle的,
    用exec test1 ('anmmy')
    exec test1 'anmmy'也不行,我再用用varchar2和is试试吧,多谢大家!!!:)
      

  4.   

    用varchar2也不行呀!

    create procedure test1 (na varchar2)
    is
    begin
    ...
    end;
    也不行呀!
    真是郁闷!,还有一大堆for Sybase的要转成for Oracle的呢,如果这个问题解决了就好办了.
      

  5.   

    The following statement performed under SQL*PLUSCREATE TABLE TEST(NAME VARCHAR2(8), AGE INT);
    INSERT INTO TEST VALUES('ANMMY', 40);
    INSERT INTO TEST VALUES('MAC', 333);CREATE OR REPLACE PROCEDURE TEST1(NA TEST.NAME%TYPE) AS
    BEGIN
      DELETE FROM TEST WHERE NAME = NA;
    END;
    -------------------------------------------------------
    EXECUTE TEST1('MAC');
    COMMIT;All are passed.
      

  6.   

    CREATE OR REPLACE PROCEDURE TEST1(NA VARCHAR2) AS
    BEGIN
      DELETE FROM TEST WHERE NAME = NA;
    END;
    /
    可以,过程没问题! BEGIN
      -- Test statements here
     TEST1('MAC');
     commit;
     END;调用也可以!把EXECUTE去掉就行了!:)