李晓亮的博客

导航

Oracel常见错误及处理办法小结

1.调用 '存储过程名称' 时参数个数或类型错误
[1]仔细核对了C#在调用存储过程时传递的参数个数和参数类型,参数个数和参数类型都和存储过程的声明一致;然后直接在PL/SQL Developer进行跟踪调试,也没发现问题,找不到出错原因,于是头大了。
[2]网上查找原因,有说在存储过程的参数变量声明后加上default null,试了不行
[3]最终找到一篇文章说可能调用时的参数名称和存储过程中的参数名称不一致,于是检查了一下C#中新建参数时的代码:

创建参数数组
OracleParameter[] param = new OracleParameter[] {
               
new OracleParameter("p_PageSize",OracleType.Number),
               
new OracleParameter("p_PageNo",OracleType.Number),
               
new OracleParameter("p_Field",OracleType.VarChar),
               
new OracleParameter("p_TableName",OracleType.VarChar),
               
new OracleParameter("p_SqlSelect",OracleType.VarChar),
               
new OracleParameter("p_OrderBy",OracleType.VarChar),
               
new OracleParameter("p_OutRecordCount",OracleType.Number),
               
new OracleParameter("p_OutCursor",OracleType.Cursor)
           };

最后发现确实是一不小心在参数名称中多敲了一个字符。没想到为了一个拼写错误竟话费快一个下午的时间,真是粗心大意害死人啊。
[4]最后发现有人对此作了小结,摘录如下:
(1).参数少于需求参数,真的是类型错误(OracleType)
(2).参数顺序引起
(3).null值引起
(4).参数的取名

posted on 2011-08-04 21:15  LeeXiaoLiang  阅读(265)  评论(0)    收藏  举报