日期:2014-05-18  浏览次数:20672 次

大神帮忙呀!!!! 关于hibernate操作oracle表的问题
我想要执行如下操作,假如有一张表A,
我要先执行清空操作,代码如下:


StringBuffer sql = new StringBuffer();
sql.append(" truncate table A ");
this.getJdbcTemplate().update(buffer.toString());


然后我从B表取数再插入A表,代码如下:


StringBuffer buffer = new StringBuffer();
buffer.append(" insert into A(name,code) ");
buffer.append(" select name,code from B");


完整代码如下:

StringBuffer sql = new StringBuffer();
sql.append(" truncate table A ;");
StringBuffer buffer = new StringBuffer();
buffer.append(" insert into A(name,code) ");
buffer.append(" select name,code from B");
this.getJdbcTemplate().update(sql.toString());
this.getJdbcTemplate().update(buffer.toString());



结果报错了,求大神指导。。。


执行时间:04:34:51,301|执行SQL:15|处理结果集:55|sql:  truncate table MODEL_METADATA_DETAIL ; 
2013-09-18 16:34:51,301 ERROR [com.sinosoft.auditcheck.metaData.dao.impl.metaDataDaoImpl] - <生成元数据失败>
org.springframework.jdbc.BadSqlGrammarException: StatementCallback;
bad SQL grammar [  truncate table MODEL_METADATA_DETAIL ; ]; nested exception is java.sql.SQLException: ORA-00911: 无效字符
Caused by: java.sql.SQLException: ORA-00911: 无效字符
oracle java jdbc

------解决方案--------------------
你那个是sql语句,而hibernate所用的是hql语句,是有差别的