ORACLE异常:RETURNING 子句不支持的功能
获取序列ID时出现的异常,检查oracle数据库表ID字段类型是否为NUMBER类型。如果是long修改为number即可。有关number类型:http://www.blogjava.net/caojianhua/archive/2011/01/24/343461.html严重:nulljava.sql.SQLException:ORA-22816:RETURNING子句不支持的功能atoracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)atoracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)atoracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)atoracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)atoracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)atoracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)atoracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)atoracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:947)atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)atoracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)atoracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3462)atoracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1061)atorg.iie.dao.impl.OracleGenelDaoImpl.insertDataReturnKeyByReturnInto(OracleGenelDaoImpl.java:160)atorg.iie.dao.impl.OracleGenelDaoImpl.main(OracleGenelDaoImpl.java:148)
顺便贴出获取序列号的方法:
publicstaticintinsertDataReturnKeyByReturnInto()throwsException{Connectionconn=GlobalData.getOracleConnection();Stringvsql="insertintoxx(id)values(xx_squencee.nextval)returningidinto:1";OraclePreparedStatementpstmt=(OraclePreparedStatement)conn.prepareStatement(vsql);pstmt.registerReturnParameter(1,Types.BIGINT);pstmt.executeUpdate();ResultSetrs=pstmt.getReturnResultSet();rs.next();intid=rs.getInt(1);rs.close();pstmt.close();System.out.print("id:"+id);returnid;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。