VB.NET在PL / SQL中将空SQL日期作为时间传递

时间:2013-02-05 15:10:39

标签: sql vb.net plsql

我正在编写一个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')

enter image description here

1 个答案:

答案 0 :(得分:2)

您的tmp_something_DATE变量的类型为Date。问题是它无法在NULL/Nothing变量中存储Date值。如果您尝试将Date分配给Nothing,则会将其分配给Date.MinValue,这等于#12:00:00 AM#。您需要Nullable(Of Date)或直接使用DataTable列值。