码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE异常:RETURNING 子句不支持的功能

时间:2014-12-05 19:47:08      阅读:626      评论:0      收藏:0      [点我收藏+]

标签:数据库表   oracle   number   exception   returnning   

获取序列ID时出现的异常,检查oracle数据库表ID字段类型是否为NUMBER类型。如果是long修改为number即可。
有关number类型:http://www.blogjava.net/caojianhua/archive/2011/01/24/343461.html

严重: null
java.sql.SQLException: ORA-22816: RETURNING 子句不支持的功能

	at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
	at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
	at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
	at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:947)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
	at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3462)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1061)
	at org.iie.dao.impl.OracleGenelDaoImpl.insertDataReturnKeyByReturnInto(OracleGenelDaoImpl.java:160)
	at org.iie.dao.impl.OracleGenelDaoImpl.main(OracleGenelDaoImpl.java:148)

顺便贴出获取序列号的方法:


public static int insertDataReturnKeyByReturnInto() throws Exception {
        Connection conn = GlobalData.getOracleConnection();
        String vsql = "insert into xx(id) values(xx_squencee.nextval) returning id into :1";
        OraclePreparedStatement pstmt = (OraclePreparedStatement) conn.prepareStatement(vsql);
        pstmt.registerReturnParameter(1, Types.BIGINT);
        pstmt.executeUpdate();
        ResultSet rs = pstmt.getReturnResultSet();
        rs.next();
        int id = rs.getInt(1);
        rs.close();
        pstmt.close();
        System.out.print("id:" + id);
        return id;
    }


本文出自 “我会努力” 博客,请务必保留此出处http://meijia.blog.51cto.com/8684191/1586548

ORACLE异常:RETURNING 子句不支持的功能

标签:数据库表   oracle   number   exception   returnning   

原文地址:http://meijia.blog.51cto.com/8684191/1586548

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!