查询oracle 报错

独孤正龙 2017-11-27 07:08:49
异常信息System.InvalidCastException: Specified cast is not valid.
at Oracle.ManagedDataAccess.Client.OracleDataReader.GetDecimal(Int32 i)
at Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i)
at Oracle.ManagedDataAccess.Client.OracleDataReader.GetValues(Object[] values)
at System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
at System.Data.ProviderBase.SchemaMapping.LoadDataRow()
at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)

代码如下:
try
{
sql = sql.Replace("P_start", (index * number+1).ToString()).Replace("Pend", ((index+1) * number).ToString());
OpenConn();
LogHelper.Write(string.Format("ExcuteSelectSql== {0} ", sql));
System.Data.DataSet ds = new DataSet();
OracleDataAdapter Ada = new OracleDataAdapter(sql, conn);
Ada.AcceptChangesDuringFill = true;
Ada.AcceptChangesDuringUpdate = true;
if (tableName == "") tableName = "oracle_data";
Ada.Fill(ds, tableName);
LogHelper.Write(string.Format("ExcuteSelectSql==table Name :{0},rows: {1} ", tableName, ds.Tables[0].Rows.Count));
CloseConn(conn);
return ds.Tables[0];
}
catch (Exception ex)
{
LogHelper.Write("ExcuteSelectSql:" + ex.ToString());
CloseConn(conn);
return null;
}
并不是所有的sql 都报错,,,有写sql 执行正常,但是所有的sql 在plsql中执行正常
...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
碧水幽幽泉 2017-11-30
  • 打赏
  • 举报
回复
[quote=引用 4 楼 qq646748739 的回复 System.InvalidCastException: Specified cast is not valid. 这个是你C#代码的问题,不是Oracle的问题。 仔细检查下你的代码,应该是类型转换出现问题。[/quote] 原因我已经说了。
binsweet 2017-11-30
  • 打赏
  • 举报
回复
数据有空值,或不符合你规则的数据造成的,转换前做好校验
marko39 2017-11-30
  • 打赏
  • 举报
回复
你直接把处理好的SQL输出到日志中,然后复制出来执行看看,C#代码 有问题!
碧水幽幽泉 2017-11-27
  • 打赏
  • 举报
回复
System.InvalidCastException: Specified cast is not valid. 这个是你C#代码的问题,不是Oracle的问题。 仔细检查下你的代码,应该是类型转换出现问题。
独孤正龙 2017-11-27
  • 打赏
  • 举报
回复
而我只是要让他把结果返回到一个datatable
独孤正龙 2017-11-27
  • 打赏
  • 举报
回复
但是我只是想把查询结果返回一个table,,并没有想转换数据格式..现在报错貌似是转换格式了
卖水果的net 2017-11-27
  • 打赏
  • 举报
回复
System.InvalidCastException: Specified cast is not valid. 这个不是ORACLE 报的错,应该是 java 抛出来的异常。

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧