ORA:指定的强制转换无效

时间:2016-06-20 17:17:57

标签: oracle

请原谅我,我不熟悉运行查询和使用数据库。我目前正在运行大多数可能会看到的非常简单的查询,但我一直收到错误。

我的查询是:

SELECT order, category, target_hours, actual_hours FROM ttask

我不断收到错误“指定的演员表无效”。通过消除过程,我发现错误是由“actual_hours”列引起的。如果我使用WHERE语句,我可以让它来处理一些查询而不是其他查询。

有没有办法绕过这个错误?该列应包含带小数的数字;该查询似乎返回零就好了,但只要它实际上有数字,它就会产生这个错误。

此数据库中有数百万条记录。在查询时,我想避免更改数据库中的任何内容。

非常感谢任何帮助!

************** Exception Text **************
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.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)
   at ORAQuery.Parameters.LoadQueryResult(OracleConnection conn, DataSet ds, String tableName)
   at ORAQuery.Parameters.LoadData()
   at ORAQuery.Parameters.btnLoad_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

0 个答案:

没有答案