在 Oracle 中,我在包中有一个函数:
function get_trans (
in_idcard in number,
in_datefrom in date,
in_dateto in date
)
return trans_rec_list parallel_enable pipelined;
如果我像这样通过 SQL Developer 调用 func:
select field1, field12 from table(API.get_trans(1,TO_DATE('01/06/2018 00:00:00'), TO_DATE('21/06/2018 00:00:00')));
一切正常,但是当我像这样从 C# .net Core 调用函数时:
using (OracleConnection connection = new OracleConnection("MyConnectionString")) {
connection.Open();
using (OracleCommand cmd = connection.CreateCommand()) {
cmd.CommandType = CommandType.Text;
cmd.CommandText = String.Format("select field1, field12 from table(API.get_trans({0}, TO_DATE('{2}'), TO_DATE('{3}')))", 1, dates.Date_From.ToString("dd-MM-yyyy HH:mm:ss"), dates.Date_To.ToString("dd-MM-yyyy HH:mm:ss"));
OracleDataReader er = cmd.ExecuteReader();
我有错误 ORA-01843: not a valid month
最后,如果我只是从cmd.CommandTextSQL Developer复制文本并在其中运行 - 一切正常
另一个类似的函数不使用类型date参数也能很好地工作
问题出在哪里?
动漫人物
相关分类