Java SQLException ORA-00904

时间:2012-07-28 09:58:15

标签: java jdbc oracle11g

我在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或命令行中执行查询时,一切正常。 我做错了什么?

提前致谢,

希比

3 个答案:

答案 0 :(得分:0)

也许您与函数名称发生冲突。尝试用双引号括起列名,就像在CREATE TABLE语句中一样。

答案 1 :(得分:0)

您使用的驱动程序似乎不合适...... 尝试使用ojdbc14.jar 它在oracle的网站上很容易获得.. 休息代码没问题

答案 2 :(得分: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");