ORA-00911: недопустимый символ
Я создаю две таблицы в моей базе данных oracle (11g) следующим образом:
create table "test" ("id" int);
create table test ("id" int);
тогда в моей программе на C# есть проблема:
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();
для обеих команд.ExecuteReader () у меня есть ошибка" ORA-00911: недопустимый символ".
5 ответов:
в случае, если другие люди здесь ищут, как включить несколько операторов в одну команду, вам нужно обернуть свои операторы в начать и конец. Это остановит недопустимые ошибки символов из-за точки с запятой. Например:
var command = new OracleCommand(@" begin select * from test; select * from test2; end;")
почему вы используете точку с запятой в query...It просто примите как недопустимый символ..... Вы должны удалить точку с запятой (;) из запроса и сделать так:
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();
более подробно об этой ошибке вы можете прочитать здесь.
Это не проблема этого парня, но, надеюсь, это поможет кто-то там:
У меня часто есть эта проблема с одинарными кавычками, скрытыми внутри встроенных комментариев, например:
select foo from bar where /* some helpful comment with a "can't" or somesuch */ baz='qux'
непревзойденная одиночная цитата в комментарии вызывает все виды драмы, и oracle не выходит из своего пути, чтобы помочь вам понять это.