0

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

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

我已经尝试了oracle 引号运算符和c# 字符串文字的各种迭代(即 @"this is ""testing"" the literal" 和 "this is \"testing\" the literal")。

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

select column1 as "alias1" from dual;

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

select column1 as \"alias1\" from dual;

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

4

1 回答 1

1

哇。将近一个小时后,我发现了一些愚蠢的事情。让这成为对你们其他人的警告。 不要将分号留在查询的字符串文字中

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

string query = @"select column1 as ""alias1"" from dual";

……但这不是……

string query = @"select column1 as ""alias1"" from dual ;";

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

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

于 2013-05-01T14:36:02.487 回答