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;
    }
时间: 2024-08-01 22:48:04

ORACLE异常:RETURNING 子句不支持的功能的相关文章

总结:整理 oracle异常错误处理 . (转载)

5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发异常错误 5.2.2 在声明部分引发异常错误 5.3 异常错误处理编程 5.4 在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件.一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复.任何ORACLE错误

【转】oracle异常错误处理

5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4  用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发异常错误 5.2.2 在声明部分引发异常错误 5.3 异常错误处理编程 5.4  在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件.一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复.任何ORACLE

Oracle OCP笔记(31)使用闪回功能

Oracle OCP笔记(31)使用闪回功能 Oracle的闪回功能受到3个数据库结构之一的支持: 撤消数据.闪回恢复区和回收站. 撤消表空间中的撤销数据不仅支持事务回滚,也支持大多数闪回表操作.Flashback Data Archives允许查询先前版本的表行,它在撤销表空间之外的一个或多个表空间中提供一个区域,支持的保留期比撤销表空间还长.闪回日志保存在闪回恢复区中,从而无需执行传统的还原和恢复操作,即可方便地将整个数据库回滚到过去的时间点.每个表空间中的回收站包含一个或多个版本的已删除的

Navicat工具进行Oracle数据库复制 or 备份、还原功能(由评教需要所谈)

GXPT是一个分布式系统,此系统暂时包含权限系统.基础系统.评教系统.考试系统,各个系统建有自己的oracle数据库.我们小组负责的是评教系统,而评教系统的正常需要借助于权限系统和基础系统,具体的业务这里就不多解释了.近期要进行评教活动了,基础系统在往基础库中录入真实数据,而评教系统还想进行一下功能及压力测试,当然就不同直接操作基础真实数据库的数据了,于是我们准备了一台装有oracle的备用服务器,作为测试使用. Oracle数据库不能像SqlServer那样直接进行备份还原.我首先建好了基础系

手机支持USB功能、驱动文件对应关系

手机支持USB功能: 1.UMS(USB MASS Stronge) : 连接PC作为存储盘使用 2.ADB : 用于调试 3.MTP :连接PC作为存储盘使用(win XP需要安装WMP10 以上 win7以上自动包含有) 4.PTP : 类似于相机导入功能 5.RNDIS : 虚拟网卡 (PC通过手机网络上网等)  驱动文件对应关系:   1.android_winusb.inf ---> ADB功能   2.cdc_acm.inf ---> USB串口功能 3.tetherxp.inf

Oracle异常

Oracle异常分类                                                                                                                        Oracle预定义异常(即已定义的内部异常) Oracle非预定义异常(即未定义的内部异常) 用户自定义异常 常见的预定义异常                                                         

TD-LTE中S1接口不支持的功能有哪些

http://www.mscbsc.com/askpro/response-316483.html wwwmscbsccom 的答案 这个是选择题吧,楼主应该把题目给全啊,一般介绍的有支持的功能,可以根据至此回的功能进行排除定义S1接口是LTE eNB(基站)与 EPC(分组核心网)之间的通讯接口. 含义LTE相对于3G网络,其最大特点是网络扁平化,引入了S1和X2接口.位于演进基站和移动性管理实体/服务网关间的S1接口,将SAE/LTE演进系统划分为无线接入网和核心网.网络架构主要由演进型No

检查android设备是否支持某些功能

我们在开发APP的时候,应用程序可能需要设备支持某些功能才能保证应用程序的运行.例如需要支持电话,NFC.陀螺仪等等. 我们可以使用PackageManager对象的hasSystemFeature方法来检查当前设备是否支持某些功能. 第一种方法: 使用代码检查设备是否支持某些功能.这种方法比较好.因为不论app来自哪里.都能准确的判断设备是否支持应用所需的功能. 代码: PackageManager pm = getPackageManager(); // 获取是否支持电话 boolean t

在oracle中where 子句和having子句中的区别

在oracle中where 子句和having子句中的区别 1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句.下面分别说明其用法和异同点.注:本文使用字段为oracle数据库中默认用户scott下面的emp表,sal