缺少逗号,oracle ORA-00917

时间:2016-06-02 13:15:26

标签: c# sql oracle

我有这个代码用于将值插入到oracle数据库中,我得到“Missing comma”异常,我无法看到它来自何处。

 "insert into comandadvd values('" + txt_idComanda.Text + "','" +
                    txtFormat.Text + "','" + "', to_date('" + txtData.Text + "','DDMMYYY')'" + txtIdTipPlata.Text + "','" + txtPret.Text + "')";

此处它是Oracle的代码:

INSERT INTO ComandaDVD (Id_Comanda,Id_Format,Data_Comanda,Id_TipPlata,Pret)
VALUES ('1','1','12-11-2011','1','200');

提前致谢!

5 个答案:

答案 0 :(得分:2)

  • 尝试一次

"insert into comandadvd values('" + txt_idComanda.Text + "','" + txtFormat.Text + "','" + "' to_date('" + txtData.Text + "','DDMMYYY')'" + "','" + txtIdTipPlata.Text + "','" + txtPret.Text + "')";

答案 1 :(得分:1)

  1. 在约会之前您有一个额外的逗号。日期部分to_date不应该在引号内。
  2. 日期格式错误。您在示例中提到了DD-MM-YYYY
  3. 试试这个,因为我没有测试过,如果你收到错误就告诉我。

    "insert into comandadvd values('" + txt_idComanda.Text + "','" + txtFormat.Text + "','" + "to_date('" 
    + txtData.Text + "','DD-MM-YYY')" + txtIdTipPlata.Text + "','" + txtPret.Text + "')";
    

答案 2 :(得分:1)

错误的直接原因在于

POST api/courses/link/

fragmanent。最佳解决方案是使用参数化查询:

"','" + "', to_date('"

如果由于某种原因您无法使用参数化查询,请使用格式化一个:

  @"insert into comandadvd (
      Id_Comanda,
      Id_Format,
      Data_Comanda,
      Id_TipPlata,
      Pret)
    values ( 
      :prm_Id_Comanda,
      :prm_Id_Format,
      :prm_Data_Comanda,
      :prm_Id_TipPlata,
      :prm_Pret)";

指导原则是让您的SQL可读

答案 3 :(得分:0)

您在查询中to_date(之前添加了额外的逗号。更正后的代码如下:

"INSERT INTO ComandaDVD (Id_Comanda,Id_Format,Data_Comanda,Id_TipPlata,Pret) VALUES (" +
    "'" + txt_idComanda.Text + "', " +
    "'" + txtFormat.Text + "', " +
    "to_date('" + txtData.Text + "', 'DDMMYYY'), " +
    "'" + txtIdTipPlata.Text + "', " + 
    "'" + txtPret.Text + "')";

答案 4 :(得分:0)

似乎存在多个问题:

  1. 最大的问题是你没有运行代码来查看它的真正作用 - 见证了代码中使用的表名和SELECT中显示的表名具有不同的大小写,并且发布的SELECT中的字段列表,代码未生成;因此,您发布的SELECT文本显然不是由此代码生成的。如果您实际上运行代码并生成了INSERT语句,那么您已经发现它不会像您想的那样,并且您可以自己修复它
  2. 此代码会在to_date之前添加多个逗号。
  3. 代码不会在txtIdTipPlata.Text之前生成逗号。
  4. INSERT语句应始终包含要插入的字段名称列表。
  5. 祝你好运。