温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-01 16:50:35 来源:网络 阅读:2069 作者:但丁丶2P丶M 栏目:关系型数据库
获取序列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;
    }


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI