Oracle数据库“Specified cast is农田valid”

简介:

 

这种错误是笔者在执行一条计算符合条件的行有多少个,用OracleDataReader读取计算出的行数时发生。

查询语句为:

1
Select  Count (1)  FROM  HP_TS   Where   TS_ID>0

 C#执行过程为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public  static  int  GetSingle( string  strSQL)
         {
             try
             {
                 OpenConnection();
                 OracleDataReader oraDataReader = ExecuteReader(Connection, CommandType.Text, strSQL,  null );
                 int  count = -1;<br data-filtered= "filtered" >
                 if  (oraDataReader.HasRows ==  true  && oraDataReader.Read())
                 {
                     count = oraDataReader.GetInt32(0);   // ① 此处抛出该错误异常
                 }<br data-filtered= "filtered" >
                 oraDataReader.Close();
                 return  count;
             }
             catch  (System.Exception ex)
             {
                 throw  ex;
             }
         }

 

后来经过调试发现是由于oraDataReader[0] (或者是oraDataReader["Count(1)"]),的类型是decimal的,所以直接用以上代码①处的结果,将发生本文所述的异常。

后来,给出如下解决方法:

将①处替换为下面所示代码

1
count = Convert.ToInt32(oraDataReader[0].ToString());

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。




    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5822668.html ,如需转载请自行联系原作者
相关文章
|
SQL Oracle 关系型数据库
Oracle中的数据类型隐式转换(implicit conversion)
和其他的关系型数据库一样,oracle中也能进行一些隐式的数据转换,这对我们写SQL语句有非常用,我们可以不必麻烦地手动转化很多类型的字符。虽然前面我们介绍了一些使用例如to_char,to_date的函数进行强制转换的方法,但是隐式转换也还是不错的。
1158 0
|
Oracle 关系型数据库 数据库
oracle exp&imp之IMP-00037: Character set marker unknown
    最近,为地市技术人员做技术支持,碰到一个很奇怪的问题,别人给他提供一个exp的dmp文件,他在本地进行imp的时候报错:IMP-00037:Character set marker unknown 报错信息如下: C:\Users\localadmin>i...
4327 0
|
8月前
|
Oracle 关系型数据库
Oracle中decode 以及ROW_NUMBER() OVER() 函数等其它相关函数用法
Oracle中decode 以及ROW_NUMBER() OVER() 函数等其它相关函数用法
77 0
|
8月前
|
机器学习/深度学习 人工智能 Oracle
在Oracle中,TO_CHAR()、TO_NUMBER()和TO_DATE()函数的使用方法以及作用
在Oracle中,TO_CHAR()、TO_NUMBER()和TO_DATE()函数的使用方法以及作用
235 0
解决sql update 1292 - Truncated incorrect DOUBLE value:
出现这种错误,我属实焦头烂额了一会儿,这个错误基本可以分为以下两种情况: 一:你的字段类型是varchar,但是你这样进行操作,是不对的, UPDATE StuCose SET Cno=60 应该是: UPDATE StuCose SET Cno='60' 二:你更新操作进行子查询时,需要的两个表的相同的字段的类型不同,比如你的cose表中的Cno是int类型, 但是你的stucose表中是varchar类型 ,这个时候类似这样进行了子查询的update就会报错 UPDA.
413 0
解决sql update 1292 - Truncated incorrect DOUBLE value:

推荐镜像

更多