1

为什么“发件人”被视为在错误的位置?

在从 Delphi 移植到 C# 时,我必须将查询中的双引号更改为单引号,以便在 IDE 中编译查询字符串。

IOW,使用这样的 SQL,在 Delphi 和 Toad 中工作:

@"SELECT R.INTERLOPERABCID "ABCID",R.INTERLOPERID "CRID", . . .

...我必须将其更改为此才能在 Visual Studio 中编译:

@"SELECT R.INTERLOPERABCID 'ABCID',R.INTERLOPERID 'CRID', . . .

但是,SQL 不会以这种方式运行 - 我得到“ORA-00923:FROM 关键字未在预期的位置找到”错误消息(在 Toad 和尝试在 C# 应用程序中执行 SQL 时)。

我怎样才能让它编译和运行?

4

2 回答 2

5

您的列别名周围的引号使其胃灼热。

似乎在原始情况下,整个查询都被双引号包围,并且列别名周围的双引号与那些混淆。

在第二种情况下,Oracle 将单引号列别名解释为字符串,从而将其丢弃。

在 Oracle 中,您也不应该需要:您应该能够只编写代码:

@"SELECT R.INTERLOPERABCID ABCID,R.INTERLOPERID CRID, . . .

或者,使用可选AS关键字:

@"SELECT R.INTERLOPERABCID AS ABCID,R.INTERLOPERID AS CRID, . . .

希望这可以帮助。

于 2012-04-19T17:17:45.100 回答
1

如果您在查询中有内联注释,则通常不起作用

于 2015-06-26T18:34:07.217 回答