DbUtils1.6+Druid1.0.20绑定变量查询oracle时报java.sql.SQLException: ORA-00942: 表或视图不存在

weixin_38097015 2016-06-17 02:33:05
 开发四年只会写业务代码,分布式高并发都不会还做程序员?->>>    @wenshao 你好,想跟你请教个问题:DbUtils1.6+Druid1.0.20绑定变量查询oracle时报java.sql.SQLException: ORA-00942: 表或视图不存在 部分代码如下 String sql = "select * from user_tables where status=? and pct_free>=? and rownum<10"; sql="select * from nm_dm_obj_def t where prvcode=? and os_db_type=? and oper_time>to_date(?,'yyyymm')"; //List<Map<String, String>> result = db.queryForMapStrList(sql, new Object[]{"VALID",10}); List<Map<String, String>> result = db.queryForMapStrList(sql, new Object[]{"100","aix","201501"}); for (Map map : result) { System.out.println(map);  } nm_dm_obj_def是业务表,user_tables是oracle系统表 使用绑定变量查询user_tables时是正常的。查询业务表时报如下错误: java.sql.SQLException: ORA-00942: 表或视图不存在  Query: select * from nmcuser.nm_dm_obj_def t where prvcode=? and os_db_type=? and oper_time>to_date(?,'yyyymm') Parameters: [100, aix, 201501] at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392) at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:351) at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:289) at com.asiainfo.util.DBBase.queryForMapStrList(DBBase.java:367) at com.asiainfo.main.dbTest.main(dbTest.java:19) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) Exception in thread "main" java.lang.NullPointerException at com.asiainfo.main.dbTest.main(dbTest.java:20) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 刚才又试了一下,把sql改为 select * from nmcuser.nm_dm_obj_def t where prvcode= ? and os_db_type=? and oper_time> to_date(?,'yyyymm') 就可以正常运行了。唯一的区别是oper_time>与to_date之间增加了一个空格
...全文
48 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧