【问题标题】:VB.NET pass null SQL date as time in PL/SQLVB.NET 在 PL/SQL 中将空 SQL 日期作为时间传递
【发布时间】:2013-02-05 15:10:39
【问题描述】:

我正在编写一个 VB.NET 应用程序,将数据从 MS SQL 数据库表移动到 Oracle 数据库表。

MS SQL DB 中的记录具有空日期。 Oracle db 表列设置为允许空值。当我运行 VB.NET 应用程序并单步执行该应用程序时,一切正常,直到记录为空日期。 VB.NET 将空日期显示为“12:00 AM”,没有日期,只有时间。

我得到的 Oracle 错误是:ORA-01847: day of month must be between 1 and last day of month

这是从 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')

【问题讨论】:

    标签: sql vb.net plsql


    【解决方案1】:

    看起来您的 tmp_something_DATE 变量的类型为 Date。问题是它不能将NULL/Nothing 值存储在Date 变量中。如果您尝试将Date 分配给Nothing,它实际上分配给Date.MinValue,等于#12:00:00 AM#。您要么需要Nullable(Of Date),要么直接使用DataTable 列值。

    【讨论】:

    • 感谢您的回答。正是我需要的。
    猜你喜欢
    • 2017-12-12
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多