我试图编写一个oracle查询,客户端已经为输出请求了一个特定的列名。很简单,我使用双引号使用oracle列别名编写查询。(请注意,我使用引号是因为所请求的列名是保留字。)
问题是,当我试图使用以下代码执行查询时,正在接收来自错误ORA-00911: invalid character的消息:
OracleCommand command = new OracleCommand(sqlquery, connection.Conn);
dt.Load(command.ExecuteReader());我尝试过oracle引号运算符和c#字符串文字的各种迭代(即@“这是”测试“文字”和“这是测试\”“文字”)。
查询很简单,因为我想这样做:
select column1 as "alias1" from dual;当我在Oracle中直接运行它时,这是可行的,但我无法让它通过.Net应用程序运行。转义双引号并在调试器中查看查询后,显示它已格式化为:
select column1 as \"alias1\" from dual;看起来很明显吗?反斜杠是导致Oracle错误的原因,但是如何解决这个问题呢?
发布于 2013-05-01 14:36:02
哇。将近一个小时后,我发现了一些愚蠢的东西。让这是对你们其他人的警告。不要将分号留在字符串文本中进行查询。。
换句话说这很好..。
字符串查询=@“选择column1作为”alias1“从dual";
..。但这不是..。
字符串查询=@“从dual;";中选择column1作为”alias1“
注意,在第二个示例中添加了少量的;。
我希望这能帮别人节省点时间。
https://stackoverflow.com/questions/16320006
复制相似问题