C# 附加信息:ORA-00917:缺少逗号
我有点迷路了,我不知道下一步该怎么办C# 附加信息:ORA-00917:缺少逗号,c#,oracle,C#,Oracle,我有点迷路了,我不知道下一步该怎么办 com.CommandText =@"insert into TDESADV_H_T (spplr_mailbox,message_id,asn_no,TO_DATE('message_date', 'YYYY/MM/DD HH24:MI'))" + " VALUES(:spplr_mailbox,:message_id,:asn_no,:message_date)"; 它肯定是在消息日期。查询接收到: com.Pa
com.CommandText =@"insert into TDESADV_H_T (spplr_mailbox,message_id,asn_no,TO_DATE('message_date', 'YYYY/MM/DD HH24:MI'))"
+ " VALUES(:spplr_mailbox,:message_id,:asn_no,:message_date)";
它肯定是在消息日期。查询接收到:
com.Parameters.AddWithValue("message_date", edi.MESSAGE_SEND_DATE);
时间是:2017/10/23 18:01。我不确定是什么问题。
TO_DATE('message_DATE','YYYY/MM/DD HH24:MI')
在插入
语句中应该是一个列名,而不是一个列名。这正是它所抱怨的TO_DATE('message_DATE','YYYY/MM/DD HH24:MI')
中的INSERT语句应该是一个列名,而不是一个列名。这正是它所抱怨的您的SQL语法已关闭,插入应该如下所示:
INSERT INTO TDESADV_H_T (spplr_mailbox, message_id, asn_no, message_date)
VALUES (:spplr_mailbox, :message_id, :asn_no, :message_date);
关于对
to_DATE
的调用,如果发生这种情况,应该是在绑定C代码中的参数时。理想情况下,您应该能够绑定一个C类型,API可以自动将该类型绑定到message\u date
列,这样就不需要调用to\u date
。您的SQL语法已关闭,插入内容应该如下所示:
INSERT INTO TDESADV_H_T (spplr_mailbox, message_id, asn_no, message_date)
VALUES (:spplr_mailbox, :message_id, :asn_no, :message_date);
关于对
to_DATE
的调用,如果发生这种情况,应该是在绑定C代码中的参数时。理想情况下,您应该能够绑定一个C类型,API可以自动将其发送到message_date
列,这样就不需要调用to_date
。正如@LasseVågsætherKarlsen引导我的那样。我试着用tou_DATE作为列名。我所要做的就是在values()中使用函数。谢谢大家。因为@LasseVågsætherKarlsen引导了我。我试着用tou_DATE作为列名。我所要做的就是在values()中使用函数。非常感谢各位。请查看您试图插入的字段,字段列表中似乎有一个to\u DATE
表达式,这绝对是不正确的语法。它应该是INSERT-INTO-table(fields)VALUES(VALUES)
,您有INSERT-INTO-table(fields,TO-DATE(…)…)…
我应该在哪里指定oracle类型,而我正试图从c应用程序中插入?我不知道您的评论是什么意思,这里的问题完全在SQL中,而不是在参数中,您的SQL在字段列表中有一个tou_DATE表达式,这是不允许的,这就是Oracle抱怨的原因。为什么您甚至必须tou DATE?数据库中的message_date
字段是什么类型的?是的,我必须这样做,我从c#中的XML中读取这些变量,如果没有该函数,查询将不会接受日期作为字符串。也许我应该早点说。请仔细查看您试图插入的字段,字段列表中似乎有一个to\u DATE
表达式,这绝对是不正确的语法。它应该是INSERT-INTO-table(fields)VALUES(VALUES)
,您有INSERT-INTO-table(fields,TO-DATE(…)…)…
我应该在哪里指定oracle类型,而我正试图从c应用程序中插入?我不知道您的评论是什么意思,这里的问题完全在SQL中,而不是在参数中,您的SQL在字段列表中有一个tou_DATE表达式,这是不允许的,这就是Oracle抱怨的原因。为什么您甚至必须tou DATE?数据库中的message_date
字段是什么类型的?是的,我必须这样做,我从c#中的XML中读取这些变量,如果没有该函数,查询将不会接受日期作为字符串。也许我应该早点说。您完全可以在VALUES子句中进行函数调用。@kfinity为什么我认为这是不可能的。我似乎记得在MySQL中,这是不可能实现的。您完全可以在VALUES子句中进行函数调用。@kfinity为什么我认为这是不可能的。我似乎记得在MySQL中,这是不可能实现的。好吧,但我觉得使用Oracle函数手动转换来自.NET的数据是不对的。也许您可以找到一种方法让驱动程序为您执行此操作,然后您可以在不调用函数的情况下绑定一个参数。好的,但我觉得您使用Oracle函数手动转换来自.NET的数据是错误的。也许您可以找到一种方法让驱动程序为您执行此操作,然后您可以只绑定一个参数而不调用函数。