Java SQLException ORA-00904

Saya mengalami masalah dalam mendapatkan Java ResultSet pada database Oracle XE 11g rilis 2. Saya menggunakan driver ojdbc6_g.jar dari Oracle untuk mengatur koneksi JDBC. Saya mendapatkan kesalahan berikut: ORA-00904: "PARSEBOOL": pengenal tidak valid

Ini kode Java saya:

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

Saya cukup yakin ini benar karena semuanya berfungsi saat pengujian di HSQLDB.

Tabel METODE didefinisikan sebagai berikut di 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
  )

Saya membaca tentang kemungkinan kesalahan karena nama kolom peka huruf besar-kecil tetapi ketika melakukan kueri di SQLDeveloper atau baris perintah, semuanya berfungsi dengan baik. Apa yang saya lakukan salah?

Terima kasih sebelumnya,

Siebe


person Siebe    schedule 28.07.2012    source sumber
comment
Saya tidak begitu yakin tentang ini, maka saya hanya menyarankan Anda melalui komentar: Saya kira ini ada hubungannya dengan PARSEBOOL yang dinyatakan sebagai CHAR. Cobalah dengan VARCHAR2 sebagai gantinya.   -  person Kazekage Gaara    schedule 28.07.2012
comment
@KazekageGaara menggunakan VARCHAR2 tidak membantu.   -  person Siebe    schedule 28.07.2012
comment
Bisakah Anda mencoba mengganti nama kolom ParseBool menjadi sesuatu yang berbeda dan memeriksanya? Kemungkinan alasan ORA-00904 adalah pengidentifikasi kolom yang hilang atau tidak valid. Tapi sepertinya tidak ada yang terjadi di sini. Cukup Membingungkan. Jika tidak berhasil, coba ubah driver Anda sesuai salah satu jawaban di bawah. Periksa file jejak atau log Anda yang mungkin memiliki informasi lebih lanjut tentang masalah ini.   -  person verisimilitude    schedule 28.07.2012
comment
Jika Anda menghapus PARSEBOOL dari SQL apakah itu berhasil? Atau apakah Anda mendapatkan kesalahan untuk kolom lain? Juga, apakah Anda yakin tidak ada skema/koneksi lain yang saya gunakan dari Java?   -  person Nivas    schedule 29.07.2012


Jawaban (3)


Mungkin Anda bentrok dengan nama fungsi. Cobalah mengapit nama kolom dengan tanda kutip ganda, seperti yang Anda lakukan pada pernyataan CREATE TABLE.

person Marko Topolnik    schedule 28.07.2012
comment
Menggunakan tanda kutip ganda juga memunculkan pesan kesalahan. Saya mencoba mengubah nama kolom dan apa pun nama yang saya berikan, selalu muncul pesan kesalahan... - person Siebe; 28.07.2012

driver yang Anda gunakan sepertinya tidak sesuai... coba dengan ojdbc14.jar mudah tersedia di situs web Oracle.. kode lainnya oke

person Prateek    schedule 28.07.2012
comment
Saya mencoba driver yang Anda sarankan tetapi tidak berhasil juga. Saya juga mencoba driver yang dibundel dalam aplikasi SQLDeveloper tetapi tidak berhasil juga. - person Siebe; 28.07.2012

Bisakah Anda mencoba memanggil meja Anda sebagai berikut

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

atau coba ini

    rs = st.executeQuery("SELECT ID, METHODNAME, BEAN, \"PARSEBOOL\", HASHID, 
ALIAS, WEBTAB FROM METHODS");
person Jacob    schedule 29.07.2012