OracleParameter xh_in = cmd.Parameters.Add("xh1", OracleType.Char, 8); 
这里的参数名要和存储过程里定义的参数名一样
P_XH IN XS.XH%TYPE,
P_KCM IN KC.KCM%TYPE,
P_CJ IN XS_KC.CJ%TYPE

解决方案 »

  1.   

    将oracle过程改为如下后,C#仍然出现此错误
    不过还是谢谢了CREATE OR REPLACE PROCEDURE ADDSTUSCORE
    (
    P_XH IN Char,
    P_KCM IN varchar2,
    P_CJ IN Number)
    AS
    V_KCH char(3);
    V_COUNT Number;
    V_XF  Number;
    begin
    select KC.KCH into V_KCH from KC where KC.KCM=P_KCM;
    select KC.XF into V_XF from KC where KC.KCM=P_KCM;
    select count(*) into V_COUNT from XS_KC where XS_KC.XH=P_XH and XS_KC.KCH=V_KCH;
    if V_COUNT=1 then
    update XS_KC set XS_KC.CJ=P_CJ,XS_KC.XF=V_XF where XS_KC.XH=P_XH and XS_KC.KCH=V_KCH;
    else
    insert into XS_KC values(P_XH,V_KCH,P_CJ,V_XF);
    end if;
    end;
    /