解决 Cannot create PoolableConnectionFactory (ORA-00923: 未找到要求的 FROM 关键字)

昨天测试查询的时候发现使用oracle时有这么一个错误:Cannot create PoolableConnectionFactory (ORA-00923: 未找到要求的 FROM 关键字)。

我换成了sqlserver和mysql,发现又没有错误。百思不得其解,因为用ibatis的SqlMapClientBuilder.buildSqlMapClient方法是能成功创建对象的,难道是ibatis的sql语句不兼容oracle?不太可能啊!!

于是我翻了下配置文件,破案了。

SqlMapConfig.xml里面有一个配置项:

真相只有一个,该配置项的作用是连接数据库的时候,做一个查询操作,检测连接是否有效。在sql server和mysql中,是可以直接select 1的,但是oracle是需要有from关键字,例如select 1 from dual。

破案之后就简单了,配置项改成

然后在后台代码,按照不同的数据库类型对这个变量进行赋值就可以了。

你可能感兴趣的:(java,oracle)