我正在编写一个VB.NET应用程序,它将数据从MS SQL数据库表移动到Oracle数据库表。
MS SQL DB中的记录具有空日期。 Oracle db表列设置为允许空值。当我运行VB.NET应用程序并单步执行应用程序时,一切正常,直到具有空日期的记录。 VB.NET将空日期显示为'12:00 AM',没有日期,只有时间。
我得到的Oracle错误是:ORA-01847:月中的某一天必须在1到月的最后一天之间
以下是从MS SQL DB中提取日期的SQL:
convert(varchar(10),DATE_COLUMN,101) end as 'DATE_COLUMN'
这是我插入Oracle DB的PL / SQL:
to_date('" & tmp_DATE_COLUMN & "','mm/dd/yyyy')
答案 0 :(得分:2)
您的tmp_something_DATE
变量的类型为Date
。问题是它无法在NULL/Nothing
变量中存储Date
值。如果您尝试将Date
分配给Nothing,则会将其分配给Date.MinValue
,这等于#12:00:00 AM#
。您需要Nullable(Of Date)
或直接使用DataTable
列值。