0

Oracle XE 11g リリース 2 データベースで Java ResultSet を取得する際に問題があります。Oracle の ojdbc6_g.jar ドライバーを使用して、JDBC 接続をセットアップしています。次のエラーが表示されます: ORA-00904: "PARSEBOOL": 無効な識別子

これは私のJavaコードです:

st = s.getConnection().createStatement();
rs = st.executeQuery("SELECT ID, METHODNAME, BEAN, PARSEBOOL, HASHID, ALIAS, WEBTAB FROM METHODS");

HSQLDBでのテスト中にすべて機能したため、これは正しいと確信しています。

テーブル METHODS は、SQLDeveloper で次のように定義されています。

CREATE TABLE "DFOLSTAT"."METHODS"
  (
    "ID"         NUMBER(*,0) NOT NULL ENABLE,
    "METHODNAME" VARCHAR2(100 BYTE),
    "BEAN"       VARCHAR2(100 BYTE),
    "HASHID"     VARCHAR2(2 BYTE),
    "ALIAS"      VARCHAR2(100 BYTE),
    "WEBTAB"     VARCHAR2(100 BYTE),
    "PARSEBOOL"  CHAR(1 BYTE),
    CONSTRAINT "METHODS_PK" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE,
    CONSTRAINT "METHODS_HASHID" UNIQUE ("HASHID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE         DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE
  )

大文字と小文字を区別する列名が原因で発生する可能性のあるエラーについて読みましたが、SQLDeveloper またはコマンド ラインでクエリを実行すると、すべて正常に動作します。私は何を間違っていますか?

前もって感謝します、

シーベ

4

3 に答える 3

0

次のようにテーブルを呼び出してみてください

        rs = st.executeQuery("SELECT METHODS.ID, METHODS.METHODNAME, 
METHODS.BEAN, METHODS.PARSEBOOL, METHODS.HASHID, METHODS.ALIAS, 
    METHODS.WEBTAB FROM DFOLSTAT.METHODS");

またはこれを試してください

    rs = st.executeQuery("SELECT ID, METHODNAME, BEAN, \"PARSEBOOL\", HASHID, 
ALIAS, WEBTAB FROM METHODS");
于 2012-07-29T05:55:17.227 に答える
0

使用しているドライバーが不適切なようです...ojdbc14.jarを試してください。オラクルのWebサイトで簡単に入手できます。残りのコードは問題ありません。

于 2012-07-28T10:17:44.633 に答える
0

関数名と衝突している可能性があります。CREATE TABLE ステートメントと同様に、列名を二重引用符で囲みます。

于 2012-07-28T10:02:32.997 に答える