ORA-01858:在预期为数字的位置找到非数字字符-VB.NET
我试图构建一个用于查询Oracle数据库的SQL语句,其中有两个参数作为日期类型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)).
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中处理即可。不需要像你们这样转换它。谢谢你们,让我试试这个并更新