看一下是否有jfdm_info这个表
或者是否有insert的权限。

解决方案 »

  1.   

    他创建存储过程时编译都有问题,执行存储过程怎么可能会成功?
    你在执行存储过程时报编译错误时,先用show err看看报的哪里的错误,修改对了再去执行存储过程吧
      

  2.   

    警告: 创建的过程带有编译错误。  别继续了
     w_jfcode  没初始化,一定是null,后面别做了
      

  3.   

    SQL>  CREATE OR REPLACE PROCEDURE JFDM_ADDJFDM 
      2  (
      3   arg_jfcode   IN varchar2,  -- 传进的参数
      4   arg_jfname   IN varchar2,  -- 传进的参数
      5   arg_jfsend   IN number,  -- 传进的参数
      6   arg_free     IN float,  -- 传进的参数
      7   arg_re   IN varchar2,  -- 传进的参数
      8   arg_status   OUT VARCHAR2 -- 传出的参数
      9  ) iS
     10  
     11   w_jfcode number;
     12  
     13       BEGIN
     14  
     15  select count(*) into w_jfcode from jfdm_info where jfcode=arg_jfcode;
     16  if w_jfcode>0 then
     17    insert into jfdm_info(jfcode,jfname,send,free,re)
     18    values(arg_jfcode,arg_jfname,arg_jfsend,arg_free,arg_re);
     19  else --已有该记录
     20    arg_status:='1';
     21  end if;
     22  
     23  END;
     24  /过程已创建。SQL>  exec JFDM_ADDJFDM('D','F',12,12.3,'DF');
    BEGIN JFDM_ADDJFDM('D','F',12,12.3,'DF'); END;      *
    ERROR 位于第 1 行:
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'JFDM_ADDJFDM'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored