我在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或命令行中执行查询时,一切正常。 我做错了什么?
提前致谢,
希比
答案 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");