繁体   English   中英

ORA-00911:无效字符

[英]ORA-00911: invalid character

我在我的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(); 

对于command.ExecuteReader()我有一个“ORA-00911:无效字符”错误。

去掉 ; 从SQL字符串的末尾开始(分号)

如果其他人在这里寻找如何在单个命令中包含多个语句,则需要将语句包装在开始结束中 这将停止由于冒号导致的无效字符错误。 例如:

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参数? with :Column_name deleteupdateinsert命令中的:Column_name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM