C # {«ORA-00917: пропущенная запятая»} ВСТАВИТЬ ОШИБКУ ЗАПРОСА

2

Я пытаюсь вставить эти значения:

int limit = 50000;

int acc_id = 1;

string query = "INSERT INTO CURRENT_ACCOUNT(C-ACCOUNT_NO,DAILY_LIMIT) 
                VALUES ('"+acc_id+"','"+limit+"')";


OracleCommand command = new OracleCommand(query, con);

command.ExecuteNonQuery();

Но получение недостающего запятой исключение:

С# {"ORA-00917: отсутствует запятая"}

  • 0
    Не похоже, что это будет причиной этой ошибки, но вы передаете свои числа в виде строковых литералов. Попробуйте удалить апострофы. Кроме того, FWIW, конкатенация таких строк может привести к множеству опечаток ... вместо этого параметризовать ваш запрос (посмотрите «Параметры c # oracle»).
  • 0
    Я думаю, что вы должны добавить точку с запятой
Показать ещё 3 комментария
Теги:

2 ответа

1
Лучший ответ

Вы уверены, что ваша таблица CURRENT_ACCOUNT содержит столбец с именем C-ACCOUNT_NO? Является ли столбец с именем C_ACCOUNT_NO (с тире - заменен C_ACCOUNT_NO подчеркивания _)?

Если имя столбца действительно содержит тире, оберните имя столбца в двойные кавычки:

string query = "INSERT INTO CURRENT_ACCOUNT(\"C-ACCOUNT_NO\",DAILY_LIMIT) " + // ...
  • 1
    Это сработало! Спасибо большое, дорогой..
0

Вы должны добавить точку с запятой в конце запроса.

string query = "INSERT INTO CURRENT_ACCOUNT(C-ACCOUNT_NO,DAILY_LIMIT) 
                VALUES ("+acc_id+","+limit+");";
  • 0
    Нет, это не обязательно .
  • 1
    не работал виру
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню