将OracleCommand与列别名一起使用

时间:2013-05-01 14:28:14

标签: .net oracle10g oraclecommand

我正在尝试编写一个oracle查询,客户端已请求输出的特定列名。很简单,我使用双引号使用oracle column alias编写查询。 (请注意,我使用的是引号,因为它恰好是请求的列名是保留字。)
问题是当我尝试使用以下代码执行查询时,我收到错误ORA-00911: invalid character

OracleCommand command = new OracleCommand(sqlquery, connection.Conn);
dt.Load(command.ExecuteReader());

我已经尝试了oracle quote operatorc# string literal的各种迭代(即@“这是”“测试”“文字”和“这是”测试\“文字”)

查询很简单,我想这样做:

select column1 as "alias1" from dual;

当我直接在Oracle中运行它时,这是有效的,但我无法通过.Net应用程序运行它。转义双引号并在调试器中查看查询后,表明它已格式化为:

select column1 as \"alias1\" from dual;

似乎很明显?反斜杠导致Oracle错误,但我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

哇。差不多一个小时后,我发现了一些愚蠢的事。让这成为对你们其他人的警告。 Don't leave the semicolon in the string literal for your query

换句话说,这很好......

string query = @“select column1 as”“alias1”“from dual”;

......但这不是......

string query = @“选择column1为”“alias1”“来自双 ; ”;

请注意第二个示例中添加了少量 ;

我希望这可以帮助别人节省一些时间。