为什么我收到“ORA-00923:FROM keyword not found where expected”?

时间:2012-04-19 16:58:18

标签: sql oracle ora-00923

为什么“From”被视为处于错误的位置?

我必须在查询中将双引号更改为单引号,以便在从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时)。

如何才能将其编译并运行?

2 个答案:

答案 0 :(得分:5)

列别名周围的引号会让它感到胃灼热。

看来,在原始情况下,整个查询都被双引号括起来,并且列别名周围的双引号会与那些混乱。

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

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

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

或使用可选的AS关键字:

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

希望这有帮助。

答案 1 :(得分:1)

如果您在查询中有内联评论

,通常无法正常工作