2012-04-19 2 views
1

「From」が間違った場所にあるのはなぜですか?「ORA-00923:FROMキーワードが必要な場所に見つかりません」というメッセージが表示されるのはなぜですか?

DelphiからC#への移植中に、クエリ文字列をIDEでコンパイルするために、二重引用符を一重引用符に変更する必要がありました。

IOWは、Delphiとヒキガエルで動作するこの、のようなSQLで:

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

...私はそれは、Visual Studioでコンパイルするために、このように変更しなければならなかった:

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

しかし、SQLはそのようには実行されません - 「ORA-00923:FROMキーワードが見つかりません」というエラーメッセージが表示されます(ToadとC#アプリケーションでSQLを実行しようとするとき)。

どうすればコンパイルして実行できますか?

+2

「from」プレースメントの行が表示されますか? – KevinDTimm

+0

私は列のエイリアスを削除することでこの問題を回避することができます。この場合、私は必要ありません。 @Kevin: –

+0

。 。 。 ?。 W.INTERLOPERTYPE、この '@」は'プレフィックス何それは確かに有効なSQLではありません RTINTERLOPERSTAT R、ABCWORKER W –

答えて

5

あなたの列エイリアスの周りの引用符は、それに胸焼けを与えています。

元のケースでは、クエリ全体が二重引用符で囲まれており、二重引用符が列のエイリアスを囲んでいます。

2番目のケースでは、Oracleは引用符で囲まれた列の別名を文字列として解釈しています。

オラクルでは、あなたは必要はありません、次のいずれかのオプションASキーワードを使用して

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

または、::このことができます

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

希望あなただけのコードにできるはずです。

1

クエリでインラインコメントを使用していると、通常は機能しません。

関連する問題