Sql .NET ORA-01858:在需要数字的位置找到非数字字符

Sql .NET ORA-01858:在需要数字的位置找到非数字字符,sql,.net,oracle,dbcommand,Sql,.net,Oracle,Dbcommand,我试图构造命名参数,但收到一个错误 无法从数据库中获取数据 Oracle.DataAccess.Client.OracleException ORA-01858:非数字 在需要数字的位置找到了字符 Oracle.DataAccess.Client.OracleException.HandleErrorHelper 构造以下查询: SELECT * FROM trade LEFT JOIN findetail ON trade.trade = findetail.trade

我试图构造命名参数,但收到一个错误

无法从数据库中获取数据 Oracle.DataAccess.Client.OracleException ORA-01858:非数字 在需要数字的位置找到了字符 Oracle.DataAccess.Client.OracleException.HandleErrorHelper

构造以下查询:

SELECT *
FROM trade LEFT JOIN 
     findetail
     ON trade.trade = findetail.trade LEFT JOIN
     fintransact 
     ON findetail.fintransact = fintransact.fintransact
WHERE trade.trade = :P1 AND acctdate = :P2
而参数是

:P1 - 2298056
:P2 - TO_DATE('2014-12-31T00:00:00', 'YYYY-MM-DD"T"HH24:MI:SS')

变量只能是值。在变量中不能将类似于
的函数调用作为文本来调用_DATE

您需要将所有SQL放在查询文本中,并且只将实际变量(如实际时间)提取到绑定变量中


在这种情况下,为什么不将正确解析的.NET
日期时间作为值传递?

变量只能是值。在变量中不能将类似于
的函数调用作为文本来调用_DATE

您需要将所有SQL放在查询文本中,并且只将实际变量(如实际时间)提取到绑定变量中


在这种情况下,为什么不将正确解析的.NET
DateTime作为值传递?

P2不应包含TO_DATE函数及其参数,而应仅包含DateTime值。其余部分应放在查询文本P2中,不应包含TO_DATE函数及其参数,而应仅包含DateTime值。其余部分应放在查询文本中
:P1 - 2298056
:P2 - TO_DATE('2014-12-31T00:00:00', 'YYYY-MM-DD"T"HH24:MI:SS')