为了账号安全,请及时绑定邮箱和手机立即绑定

C# .net Core 调用 Oracle 函数错误不是有效月份

C# .net Core 调用 Oracle 函数错误不是有效月份

C#
人到中年有点甜 2021-08-22 17:19:22
在 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参数也能很好地工作问题出在哪里?
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

您需要定义日期格式以独立于环境的 NLS 设置。所以,而不是TO_DATE('01/06/2018 00:00:00')你应该使用TO_DATE('01/06/2018 00:00:00', 'dd/mm/yyyy hh24:mi:ss')


查看完整回答
反对 回复 2021-08-22
  • 1 回答
  • 0 关注
  • 226 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信