我用SQLPLUS写了一个测试过程包,以及包体,过程包编译通过了,可是过程包体未通过,我把过程包体的SQL代码单独提取,写成单独的过程又可以编译通过。SQL代码如下:
create or replace package testpack1
as
procedure mytestpro(sname1 in varchar2, sname2 in varchar2);
end testpack1;create or replace package body testpack1
as
procedure mytestpro(sname1 in varchar2, sname2 in varchar2)
is
begin
  insert into mytable1 (field1,field2) values (sname1,sname2);
end;
end testpack1;单独过程代码如下:
create or replace procedure mytestpro(sname1 in varchar2, sname2 in varchar2)
is
begin
  insert into mytable1 (field1,field2) values (sname1,sname2);
end;请问各位大虾,问题出在什么地方?

解决方案 »

  1.   

    没有具体的错误提示,但是在user_objects视图中查看生成的程序包的状态是invalid.
      

  2.   

    create or replace package body testpack1
    as
    procedure mytestpro(sname1 in varchar2, sname2 in varchar2)
    is
    begin
      insert into mytable1 (field1,field2) values (sname1,sname2);
    end mytestpro;
    end testpack1;
      

  3.   

    重新编译也是?  ALTER  PACKAGE  username.testpack1 COMPILE;
      

  4.   

    是啊,没有提示编译错误,但在DBA_OBJECTS视图中查看其状态是无效状态。头疼!!!