2016-12-13 6 views
0

Oracleデータベースを12cに移行しました。私は列名DATEとHOUR(変更することはできません)を持つテーブルを持っています。Oracle 12cデータベースの列名としてのSQL式

command.CommandText = @"SELECT ""DATE"", ""HOUR"" FROM Table"; 

この文は、12cが実行されていない:

ORA-00911:Iは、C#でこの文を使用する前に無効な文字を

は何を変更することがありますか?おかげ

+0

列名はすべて大文字ですか? – Aleksej

+0

@Aleksej Yes are they –

+1

@Aleksej DATEはOracleのキーワードであり、二重引用符で囲まれていない限り、識別子として使用することはできません。 – MT0

答えて

1

あなたは、データベース内のオブジェクトの識別子としてのキーワードを指定する(\エスケープ文字なしの)二重引用符を使用することができます。

SELECT "DATE", "HOUR" FROM Table; 

注:あなたの周りに二重引用符を使用する場合(キーワードを列名として使用する場合には識別子を指定する必要があります)、その列に大文字と小文字を区別した名前を使用する必要があります。また、参照するたびに必ず同じ大文字を名前に使用する必要がありますそれに - my answer here for more detailsを参照してください。

+0

答えをありがとう。 Oracle SQL Developerではこれが機能していますが、C#からのクエリにはこれが必要です。 '' DATE ''だけを使用すると、文字列は ';'の後に ';'が続きます。 –

+0

@katzここでの答えで与えられたサンプルコードで正しく実行されているようです:[引用符で囲んだ文字列を使用するには?](http://stackoverflow.com/questions/5540701/how-to-use-a-string-with-quotation-marks-inside-it) – MT0

+0

ドライバの問題になる、どうもありがとう(+1) –

0

ドライバの問題

@katz - 詳細を記入してください。
ありがとう

+0

こんにちは:-)親切な思い出 –

関連する問題