Подтвердить что ты не робот

ORA-00911: недопустимый символ

Я создаю две таблицы в моей базе данных оракула (11g) следующим образом:

    create table "test" ("id" int);
    create table test ("id" int);

Тогда в моей программе С# есть проблема:

    OracleConnection conn = new OracleConnection(-myConnectionString-);
    conn.Open();
    OracleCommand command = new OracleCommand("select * from test;", conn);
    var v = command.ExecuteReader(); 
    OracleCommand command = new OracleCommand("select * from \"test\";", conn);
    var v = command.ExecuteReader(); 

для команды command.ExecuteReader() У меня ошибка "ORA-00911: недопустимый символ".

4b9b3361

Ответ 1

Удалить; (с запятой) с конца строки SQL

Ответ 2

В случае, если другие люди заходят сюда, чтобы узнать, как включать несколько операторов в одну команду, вам нужно обернуть ваши инструкции в begin и end. Это остановит неправильные ошибки символов из-за полуколоней. Например:

var command = new OracleCommand(@"
    begin
    select * from test;
    select * from test2;
    end;")

Ответ 3

Почему вы используете точку с запятой в запросе... Это просто воспринимается как недопустимый символ..... Вы должны удалить точку с запятой (;) из запроса и сделать вот так:

   OracleConnection conn = new OracleConnection(-myConnectionString-);
   conn.Open();
    OracleCommand command = new OracleCommand("select * from test", conn);
    var v = command.ExecuteReader(); 
    OracleCommand command = new OracleCommand("select * from \"test\"", conn);
    var v = command.ExecuteReader(); 

Подробнее об этой ошибке читайте здесь.

Ответ 4

Это не проблема этого парня, но, надеюсь, это поможет кому-то:

У меня часто возникает эта проблема с одинарными кавычками, скрытыми внутри встроенных комментариев, например:

select foo 
from bar
where 
/* some helpful comment with a "can't" or somesuch */
baz='qux'

Непревзойденная одинарная цитата в комментарии вызывает все виды драмы, и оракул не выходит из своего пути, чтобы помочь вам понять это.

Ответ 5

Замените параметр sqldatasource ? на :Column_name в командах delete, update и insert.