存储过程如下:
create or replace procedure proce_test(code_input in varchar2,newcode_input in varchar2,time_input in number)
is
begin
  declare p st_geometry;
t_x number(38,8);
t_y number(38,8);
t_z number(38,8);
begin
  select shape into p from bill where code=code_input;
  select x into t_x from bill where code=code_input;
  select y into t_y from bill where code=code_input;
  select z into t_z from bill where code=code_input;
  insert into bill (OBJECTID_1,objectid,code,x,y,z,starttime,endtime,shape) values(seq.nextval,0,newcode_input,t_x,t_y,t_z,time_input,0,p);
end;
end proce_test;问题:在asp.net后台调用存储过程时报错,说starttime字段类型错误oracle11g存储过程数据类型

解决方案 »

  1.   

    asp.net后台调用存储过程代码(C#): cmd.CommandText = "proce_test";
            OracleParameter[] parameters ={
                      new OracleParameter("code_input",OracleType.VarChar,16),
                       new OracleParameter("newcode_input",OracleType.VarChar,18),
                      new OracleParameter("currenttime",OracleType.Number,20)
                            };
            parameters[0].Value = code;
            parameters[1].Value = newFileNameWithoutExtention;
            parameters[2].Value = currenttime;
            parameters[0].Direction = ParameterDirection.Input;
            parameters[1].Direction = ParameterDirection.Input;
            parameters[2].Direction = ParameterDirection.Input;
            foreach (OracleParameter parameter in parameters)
            {
                cmd.Parameters.Add(parameter);
            }
    其中: code, newFileNameWithoutExtention为string类型,currenttime为double类型。