ORA-01858:在预期为数字的位置找到非数字字符-VB.NET

ORA-01858:在预期为数字的位置找到非数字字符-VB.NET,vb.net,oracle,Vb.net,Oracle,我试图构建一个用于查询Oracle数据库的SQL语句,其中有两个参数作为日期类型 cmd.Parameters.Add(New OracleParameter(":pCommencementDate", OracleDbType.Date)).Value = comm.OraFormatDate(txtCommenceDate.Text) cmd.Parameters.Add(New OracleParameter(":pCompletionDate", OracleDbType.Date)).

我试图构建一个用于查询Oracle数据库的SQL语句,其中有两个参数作为日期类型

cmd.Parameters.Add(New OracleParameter(":pCommencementDate", OracleDbType.Date)).Value = comm.OraFormatDate(txtCommenceDate.Text)
cmd.Parameters.Add(New OracleParameter(":pCompletionDate", OracleDbType.Date)).Value = comm.OraFormatDate(txtCompleteDate.Text)

Public Function OraFormatDate(ByVal strDate As String) As String
    Try
        Dim a As Date
        SetGlobalDay()
        a = Format(CDate(strDate), "dd/MM/yyyy")
        Return "to_date('" & a & "','dd/mm/yyyy')"
    Catch ex As Exception
        ERR.sWriteErrorLog("C:\", "(common OraFormatDate) -> " & ex.Message)
    End Try

End Function

在构建查询并尝试执行之后,我得到了ORA-01858错误

为什么要将字符串传递给
OracleParameter
?直接设置
日期
值。没有理由先将日期值转换为字符串,然后再使用
to_date()
将其转换回日期。发布PL/Sql存储过程,这就是错误所在@Wernfried Domscheit是正确的,只需将日期作为字符串发布并在PL/Sql中处理即可。不需要像你们这样转换它。谢谢你们,让我试试这个并更新