create or replace procedure sp_number(c1 in varchar2,c2 in varchar2,c3 in varchar2)
as
begin 
insert into testsp(test) values('1111');
end
SQL>  execute  sp_number('1','2','3');ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00905: object SYSTEM.SP_NUMBER is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored请教正确写法。多谢~

解决方案 »

  1.   

    语法没有问题,看看是不是数据的问题  1  create or replace procedure sp_number(c1 in varchar2,c2 in varchar2,c3 in varchar2)
      2  as
      3  begin
      4  insert into dbzg(zgbh,sfzh) values('aa','1111');
      5* end ;
    SQL> /过程已创建。SQL> execute  sp_number('1','2','3'); PL/SQL 过程已成功完成。SQL> 
      

  2.   

    从错误提示来看 说你存储过程有错误
    你确定你有testsp表和test字段吗?
      

  3.   

    sys@ORCL(192.168.21.110)> create or replace procedure sp_number(c1 in varchar2,c2 in varchar2,c3 in 
    varchar2) 
      2  as 
      3  begin 
      4  insert into testsp(test) values('1111'); 
      5  end;
      6  /警告: 创建的过程带有编译错误。sys@ORCL(192.168.21.110)> create table testsp(test varchar2(20));表已创建。
    sys@ORCL(192.168.21.110)> create or replace procedure sp_number(c1 in varchar2,c2 in varchar2,c3 in 
    varchar2) 
      2  as 
      3  begin 
      4  insert into testsp(test) values('1111'); 
      5  end ;
      6  /过程已创建。
    sys@ORCL(192.168.21.110)> exec sp_number('1','2','3');PL/SQL 过程已成功完成。
      

  4.   

    楼主在最后的END后面少了个;所以会报那个错误。
      

  5.   

    另外楼主在insert表之后缺少commit;数据不会插入到真正的表中,需要进行补充.