Get "The numeric type could not be converted to Decimal" error querying Decimal (38,0) column
说明
Every time a table that has a decimal (38,0) column is queried, the error below is received.
System.OverflowException The numeric type could not be converted to Decimal. Stack Trace: at Teradata.Client.Provider.TdDecimal.ToDecimal(TdDecimal input) at Teradata.Client.Provider.TeraTypeDecimal.GetDecimal(ParcelReader reader) at Teradata.Client.Provider.TeraTypeDecimal.GetValue(ParcelReader reader) at Teradata.Client.Provider.TdDataReader.GetValueInternal(Int32 i) at Teradata.Client.Provider.TdDataReader.GetValue(Int32 ordinal) at Quest.Toad.Db.Connection.ReadRow(IDataReader reader, FastTable datatable, FastReadOptions options, PrePostProcessHandler prePostProcessHandler) at Quest.Toad.Db.ToadDataAdapter.InternalReadBackground()
解决办法
WORKAROUND #1: Exclude the Decimal (38,0) column from the query, if this columns data is not needed.
WORKAROUND #2: Cast the column as varchar.
STATUS: Waiting for a fix to defect ID 'QAT-5210' in a future version of Toad Data Point.