0 0

JAVA调用oracle存储过程,返回结果集为什么不能回滚5

JAVA调用oracle存储过程时,返回结果集不能回滚,为什么????
代码:

String sql = "{call GETEMPS(?) }";
CallableStatement cste = conn.prepareCall(sql,
java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,
java.sql.ResultSet.CONCUR_UPDATABLE);
cste.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
ResultSet rs = (ResultSet) cste.getObject(paramFalg);

这里得到的rs,只能next(),不能first(),previous()等,否则就报 “对只转发结果集的无效操作: first” 错误!!!!

存储过程很简单
     create or replace procedure GETEMPS( p_cursor out types.cursorType)
     as
     begin
           open p_cursor for select id,app_id from auth_app_detail order by id;--表的名字
     end;
rs.next是可以得到结果的。

以为是oracle版本问题,但9i和10g都一样
如果用SQL语句直接查询,得到的RS是可以回滚的,为什么存储过程不行,为什么????????
DAO 
2008年9月19日 16:46
目前还没有答案

相关推荐

    hibernate query调用oracle存储过程

    以下是一个简单的示例,展示了如何调用一个不带参数的Oracle存储过程: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session....

    java调用oracle存储过程

    总之,Java调用Oracle存储过程涉及建立JDBC连接,创建CallableStatement实例,设置参数,执行存储过程,处理输出参数以及异常和资源管理。理解这些基本步骤和最佳实践对于编写高效、可靠的Java数据库应用程序至关...

    调用Oracle的存储过程

    - `java代码`:可能是一个示例程序,演示如何使用Java调用Oracle存储过程。 - `SQL语句`:可能包含了创建存储过程的SQL脚本,以及可能的测试数据插入语句。 - `存储过程`:存储过程的具体定义,通常在Oracle的PL/SQL...

    Mybatis传list参数调用oracle存储过程的解决方法

    "Mybatis调用Oracle存储过程传List参数解决方法" Mybatis是当前最流行的持久层框架之一,它提供了强大的数据访问和操作功能。但是,如何将List类型参数传递给Oracle存储过程,实现批量插入数据却是一个棘手的问题,...

    oracle的一个简单存储过程实例

    `说明.txt`文件提供了对这些存储过程的使用指南,可能包括如何通过SQL*Plus或应用程序接口(如Java的JDBC)调用它们,以及如何传递参数、处理返回结果等。在实际应用中,理解这些步骤至关重要,因为它们帮助确保正确...

    Hibernata调用Oracle数据库存储过程的一个小例子

    至此,我们已经完成了调用Oracle存储过程的基本步骤。在实际项目中,可能还需要处理返回值、异常处理以及事务管理等问题。存储过程的返回值可以通过`CallableStatement`的`registerOutParameter`方法来接收,异常则...

    Java_OracleHelper源码

    Java_OracleHelper源码是一个专为Java开发者设计的工具类库,主要目的是简化与Oracle数据库的交互过程。这个源码库包含了一系列的辅助方法,帮助开发者执行SQL查询、更新、插入和删除操作,以及处理Oracle特有的特性...

    oracle数组存储过程批量插入

    在Java示例中,我们还看到了如何为大数据量插入创建Oracle对象类型和数组类型,以及相应的存储过程。这种方式允许我们在单次调用中插入大量记录,显著提高了效率。在处理大量数据时,批量操作比逐条操作更高效,因为...

    java-oracle.zip_Empoyee_java+oracle_oracle

    Java-Oracle 连接是Java开发中常见的任务,特别是在企业级应用中,Oracle数据库作为后端存储时。这个"java-oracle.zip"压缩包显然包含了关于如何使用Java连接Oracle数据库并进行操作的一个示例,特别地,它用到了...

    java通过Mysql实现类似oracle序列功能序列.rar

    5. **Java调用存储过程**: - 使用`CallableStatement`对象,你可以调用MySQL的存储过程。设置参数和获取结果集,然后关闭相关资源。 6. **事务管理**: - 由于多线程环境下可能会有并发访问,因此确保序列号的...

    java实现增删改查使用Oracle数据库

    在IT行业中,Java是一种广泛应用的编程语言,尤其在企业级应用开发中占据着主导地位。Oracle则是一款全球知名的数据库管理系统,常用于存储和管理大量数据。...希望本教程能为你开启Java与Oracle数据库结合的编程之旅。

    总结java程序中操作Oracle数据库的常用操作1

    在Java编程中,操作Oracle数据库是一项常见的任务,用于存储、检索和处理数据。这篇博文主要总结了Java程序中与Oracle数据库交互的一些基本操作。通过`PersonCreditComplainDao.java`这个文件名,我们可以推测这是一...

    Java Oracle数据库开发指南

    Java还可以通过CallableStatement调用Oracle的存储过程。存储过程是预编译的SQL语句集合,可以提高性能并封装复杂的业务逻辑。 七、连接池管理 在实际应用中,使用连接池如C3P0、HikariCP或Apache DBCP等管理数据库...

    Oracle 官方 JDBC Demo JAVA

    Oracle JDBC驱动程序还提供了Oracle数据库特有的功能,如PL/SQL存储过程调用、游标操作、BLOB/CLOB类型处理等。`samples`中可能包含这些高级特性的使用示例。 8. **日志和安全性**: `ojdbc.policy`文件可能涉及...

    存储过程

    - **Java调用Oracle存储过程.docx**:这份文档应该会提供Java通过JDBC调用Oracle存储过程的实例和最佳实践。 - **sql存储过程教程.txt**:这个文本文件可能是一个全面的存储过程教程,涵盖多种数据库系统,包括SQL ...

    java 连接数据库(oracle)

    在Java中,可以使用CallableStatement来调用存储过程。 以上就是使用Java连接Oracle数据库的基本步骤和涉及的关键知识点。在实际开发中,还需要考虑性能优化、安全性、并发访问等问题。通过不断学习和实践,你可以...

    PROC程序设计和ORACLE调用接口

    PROC,全称为Procedural Language/SQL,是Oracle提供的一种混合编程语言,它允许开发者在SQL语句中嵌入PL/I、C、C++或Java等过程语言的代码,以实现更复杂的业务逻辑和数据库操作。 1. **PROC程序设计**: - **PL/...

    java连接oracle数据库

    ### Java连接Oracle数据库详解 #### 一、简介 在企业级应用开发中,Java与数据库的交互是非常重要的环节。本文将详细介绍如何使用Java语言连接Oracle数据库,并进行基本的数据操作,如查询、插入、更新和删除等。...

    oracle sql java教程

    8. **Oracle特有功能**:Oracle提供了一些特有的SQL函数和特性,如PL/SQL存储过程、游标、索引、分区表等,这些可以通过Java调用。 9. **连接池**:在实际应用中,通常使用连接池(如C3P0、HikariCP或Apache DBCP)...

    oracle数组存储过程批量插入.docx

    在提供的文档中,提到了两种方法将数据批量插入Oracle存储过程:一种是通过.NET环境(C#)调用,另一种是通过Java环境。这两种方法都利用了数组作为参数来传递数据,从而避免了循环中的单条插入操作。 首先,我们来...

Global site tag (gtag.js) - Google Analytics