60

次のように、Oracle (11g) データベースに 2 つのテーブルを作成します。

    create table "test" ("id" int);
    create table test ("id" int);

次に、私のC#プログラムに問題があります:

    OracleConnection conn = new OracleConnection(-myConnectionString-);
    conn.Open();
    OracleCommand command = new OracleCommand("select * from test;", conn);
    var v = command.ExecuteReader(); 
    OracleCommand command = new OracleCommand("select * from \"test\";", conn);
    var v = command.ExecuteReader(); 

command.ExecuteReader() の両方で、「ORA-00911: 無効な文字」エラーが発生しました。

4

5 に答える 5

173

削除する ; (セミコロン) SQL文字列の末尾から

于 2012-09-04T11:05:15.713 に答える
1

なぜクエリでセミコロンを使用しているのですか...無効な文字と見なされるだけです.....クエリからセミコロン(;)を削除して、次のようにする必要があります。

   OracleConnection conn = new OracleConnection(-myConnectionString-);
   conn.Open();
    OracleCommand command = new OracleCommand("select * from test", conn);
    var v = command.ExecuteReader(); 
    OracleCommand command = new OracleCommand("select * from \"test\"", conn);
    var v = command.ExecuteReader(); 

このエラーの詳細については、こちらを参照してください。

于 2012-09-04T11:05:52.787 に答える
1

これはこの男の問題ではありませんが、うまくいけば、これが誰かを助けるでしょう:

次のように、インラインコメント内に単一引用符が隠されていると、この問題がよく発生します。

select foo 
from bar
where 
/* some helpful comment with a "can't" or somesuch */
baz='qux'

コメント内の比類のない一重引用符は、あらゆる種類のドラマを引き起こします。オラクルは、それを理解するのに苦労しません。

于 2013-02-15T16:36:24.297 に答える