[英]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.