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

獲取序列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;
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章