今天是不是自己的极品时间,怎么会遇到这样的问题。实在是。。。。

记录一下 

 

来源: http://www.soidc.net/discuss/5/061216/19/128389_1.html

sql语句:select   max(e)   from   A_TEST   

  字段e值为空,使用pl/sql,toad等工具执行此语句正常   
  但,当使用cmd.ExecuteScalar执行此sql语句的时候会出现以下错误:   
  OCI-22060:   参数   [2]   是一个无效或未初始化的数值   
    
  错误是在执行sql语句的时候发生的   

  要怎么样才能捕获到这个错误,避免出现不友好信息。

感谢几位:)   
  今天测试了下,基本可以肯定是OracleClient命名空间下ExecuteScalar的BUG   
    
  现在还使用表A_TEST,对其中字段E使用聚合函数,select   max(E)   from   A_TEST   
    
  在.NET   Framework1.1下:   
  使用OracleClient命名空间下ExecuteScalar   
  数据库表中无值,没有问题   
  在数据库中有值,无论多少,但是E有空值的情况下就会出现OCI-22060错误   
    
  使用Oledb命名空间下的ExecuteScalar函数没有问题   
    
  在.NET   Framework2.0下一切正常   
    
  这样的话在1.1下OracleClient命名空间下ExecuteScalar基本就是废的了,除非你保证所有可能用到聚合函数的字段都不可能有空值。   

  可怜,只有填充DataTable了  

posted on 2009-12-24 15:00  孤剑  阅读(322)  评论(0)    收藏  举报