【发布时间】:2016-05-01 01:05:59
【问题描述】:
我正在使用 oracle 数据库 11g 第 2 版,我正在使用 apache commons dbutils v1.6,以及 JDK 8 和 tomcat 8.0.30。所以我使用 QueryRunner 及其方法,如果我只是在这样的文本中连接我的变量,一切都很好
query.query ("select * from table where field = '"+value+"'", rsh);
最近我一直在尝试使用准备好的语句以正确的方式进行查询,但无济于事,每次我使用查询方法绑定参数时
query.query ("select ESTREC,LOTE,FECREC from prueba.RECAUDO_ENC where NITREC = ? and ESTREC = ? ORDER BY FECREC DESC", rsh, new Object[]{"1234","PG"});
我无缘无故地收到此错误
java.sql.SQLException: ORA-00942: table or view does not exist
Query: select ESTREC,LOTE,FECREC from prueba.RECAUDO_ENC where NITREC = ? and ESTREC = ? ORDER BY FECREC DESC; Parameters: [1234, PG]
我 100% 确定该表存在,并且用户对该表具有权限,如果我执行相同的查询连接查询中的参数,它运行得很好,所以我正在寻找这种行为背后的原因,是否存在该方法的使用有什么问题吗? 我也在某处读到,使用 dbutils 和 oracle 进行 BLOB 绑定存在一些问题,这可能与此有关吗?
【问题讨论】:
-
您是否尝试过将
new Object[]{1234,"PG"}作为参数数组(int和String元素)传递?您的一列似乎是NUMBER,另一列是VARCHAR。 -
它们都是字符串,我确实尝试过更改我传递的数据类型。
标签: java oracle oracle11g apache-commons-dbutils