将OracleParameter与C#TimeSpan一起使用 – Literal不匹配

我进行了广泛的搜索,但我找不到任何关于此的例子。

我有一个类型为TimeSpan的.NET变量,我需要将它放入Oracle DB的IntervalDayToSecond记录中。

参考http://docs.oracle.com/html/B14164_01/featOraCommand.htm此页面,应该可以将TimeSpan对象作为OracleParameter传递,并将其插入到IntervalDayToSecond类型记录中的Oracle DB中。

这是代码:

 OracleParameter t = new OracleParameter("PAR_T", _msg.t); 

我以各种方式尝试过,也明确指定了DBType(它不应该是必需的):

 OracleParameter t = new OracleParameter("PAR_T", _msg.t); taxi.OracleDbType = OracleDbType.IntervalDS; 

我总是从Oracle得到同样的错误:

Devart.Data.Oracle.OracleException:ORA-01861:literal与格式字符串不匹配

我无法理解如何使其发挥作用; 我在这个应用程序中使用了许多参数(类型为StringIntegerDate ),它们都在工作。 在Google上,我找不到使用c# TimeSpan作为参数的某个人的例子。 有没有人试过这个?

好吧,这绝对是我的错。 好老的OracleParameter很好地完成了他的工作; 问题出在查询的其他地方。

因此,我在此确认可以将TimeSpan变量绑定到Oracle Interval Day To Second记录。

 string s = "00:20"; TimeSpan ts = TimeSpan.parse(s); OracleParameter op = new OracleParameter("PAR_T", ts); 

这将创建一个名为PAR_T的参数,该参数可用于查询以将值插入到Interval Day To Second记录中。