[英]Missing Comma, oracle ORA-00917
我有用于将值插入到oracle数据库中的这段代码,并且出现“缺少逗号”异常,但我看不到它的来历。
"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');
提前致谢!
"insert into comandadvd values('" + txt_idComanda.Text + "','" + txtFormat.Text + "','" + "' to_date('" + txtData.Text + "','DDMMYYY')'" + "','" + txtIdTipPlata.Text + "','" + txtPret.Text + "')";
to_date
不应在引号内。 DD-MM-YYYY
。 试试吧,因为我尚未测试过,如果您遇到错误,请告诉我。
"insert into comandadvd values('" + txt_idComanda.Text + "','" + txtFormat.Text + "','" + "to_date('"
+ txtData.Text + "','DD-MM-YYY')" + txtIdTipPlata.Text + "','" + txtPret.Text + "')";
错误的直接原因是
"','" + "', to_date('"
fragmanent。 最好的解决方案是使用参数化查询:
@"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)";
如果出于某种原因您无法使用参数化查询,请使用格式化的查询:
String.Format(
@"insert into comandadvd (
Id_Comanda,
Id_Format,
Data_Comanda,
Id_TipPlata,
Pret)
values (
{0},
{1},
to_date('{2}', 'DDMMYYY'),
{3},
{4})",
txt_idComanda.Text,
txtFormat.Text,
txtData.Text,
txtIdTipPlata.Text,
txtPret.Text);
指导原则是使您的SQL可读
您在查询的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 + "')";
似乎存在多个问题:
SELECT
显示的表名具有大写字母不同,并且发布的SELECT
有一个字段列表代码不会生成; 因此,您发布的SELECT
文本显然不是由此代码生成的。 如果您实际上已经运行了代码并生成了INSERT语句,您会发现它无法像您认为的那样起作用,并且您可以自己对其进行修复。 to_date
之前放置多个逗号。 txtIdTipPlata.Text
之前生成逗号。 INSERT
语句应始终包含要插入的字段名称的列表。 祝你好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.