我在甲骨文(11克)这样的数据库创建两个表:
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();
两个Command.ExecuteReader却()我有一个“ORA-00911:无效字符”错误。
如果其他人拉闸这里寻找如何将单一命令多个语句,你需要包装内的开始和结束您的语句。 这将停止无效字符错误,由于分号。 例如:
var command = new OracleCommand(@"
begin
select * from test;
select * from test2;
end;")
你为什么在查询中使用分号......它只是被视为无效字符.....你必须删除分号(;)的查询,并这样做:
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不出去它的方式来帮助你找出答案。
更换SqlDataSource的参数?
有:Column_name
在delete
, update
和insert
命令。