`

jdbc执行存储过程,返回游标结果集

    博客分类:
  • jdbc
阅读更多

执行存储过程,返回一个游标结果集,并把游标结果集取出来放入一个list中返回

public List getProcedureValues(String procedure, Object[] o) {

List list = new ArrayList();

Connection con = null;

CallableStatement ps = null;

ResultSet rs = null;

try {

con = getSession().connection();

ps = con.prepareCall(procedure);

ps.registerOutParameter(1, OracleTypes.CURSOR);

for(int i = 0; i < o.length; i++) {

if(null == o[i] || "".equals(o[i].toString().trim()) || "*".equals(o[i].toString().trim())) {

ps.setNull(i+2, Types.VARCHAR);

} else {

ps.setObject(i+2, o[i]);

}

}

ps.execute();

rs = (ResultSet) ps.getObject(1);

while(rs.next()) {

Map base = new LinkedHashMap(100);

ResultSetMetaData data = rs.getMetaData();

for(int i = 1; i < (data.getColumnCount()+1); i++) {

String name = data.getColumnName(i);

Object obj = rs.getObject(name);

base.put(name.toLowerCase(), obj!=null?obj:"");

}

list.add(base);

}

rs.close();

ps.close();

} catch(Exception e) {

e.printStackTrace();

throw new RuntimeException("根据sql查询失败\r\n" + e.getMessage());

}

return list;

}

分享到:
评论

相关推荐

    Java调用oracle存储过程通过游标返回临时表

    如果存储过程返回游标,我们需要声明一个`OUT`参数来接收。 4. **执行存储过程**:通过`pstmt.execute()`执行存储过程。这将打开一个游标,我们可以从游标中获取结果。 5. **处理游标结果**:使用`...

    Oracle存储过程out游标

    这段Java代码首先创建了一个CallableStatement对象,然后注册了Out参数(游标),执行存储过程,并从存储过程返回的结果集中读取数据。 总结一下,Oracle存储过程的Out游标是PL/SQL中返回多行结果的有效方式,Java...

    利用游标返回结果集的的例子(Oracle 存储过程).doc

    这里使用了`CallableStatement`来执行存储过程,因为它可以处理返回游标的存储过程调用。`registerOutParameter`方法用于声明第1个参数为输出参数,并指定其类型为`OracleTypes.CURSOR`。执行存储过程后,我们通过`...

    jdbc调用存储过程,函数,游标

    5. 执行存储过程,调用CallableStatement的`execute`或`executeQuery`方法。 6. 获取结果,如果存储过程有返回值,可以使用`getXXX`方法(如getInt, getString等)获取输出参数值。如果有结果集,可以迭代处理。 ...

    存储过程和游标

    在实际开发中,开发者通常会使用编程语言如Java、C#等来与数据库交互,通过特定的数据库连接库(如JDBC、ADO.NET等)来执行存储过程和管理游标。 综上所述,存储过程和游标是数据库开发中的重要工具,它们有助于...

    java调用oracle存储过程(游标)相关

    以下是一个简单的示例代码片段,演示了如何调用一个返回游标的Oracle存储过程: ```java import oracle.jdbc.OracleCallableStatement; import oracle.jdbc.OracleResultSet; try (Connection conn = ...

    Oracle存储过程返回结果集

    而`SYS_REFCURSOR`是Oracle提供的一种特殊类型,它允许存储过程动态地打开一个游标(即结果集)并将其作为`OUT`参数返回。 以下是一个简单的存储过程示例,它打开一个游标并返回包含`employees`表所有列的结果集: ...

    groovy将JDBC中oracle存储过程游标转换为多层json

    这一步骤通常涉及到设置数据库连接、创建PreparedStatement对象以及执行存储过程。 ```java Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/XE", "username", "password"); ...

    Orcale存储过程,游标,函数,简单易懂

    ### Orcale 存储过程、游标、函数详解 #### 一、存储过程概述 **存储过程**(Procedure)是一种数据库对象,它是由一系列 SQL 语句和过程性语句组成的预编译代码块,存储在数据库服务器上,并可以通过名称进行调用...

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    Java调用Oracle存储过程返回结果集Record、Cursor参照 Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中...

    JAVA调用ORACLE存储过程游标使用

    3. 执行存储过程并获取返回的游标对象。 4. 将游标对象转换为`ResultSet`,遍历并处理数据。 游标在处理大量数据或分批处理结果时非常有用,因为它允许你在需要时逐条处理结果,而不是一次性加载所有数据。通过这种...

    JDBC调用存储过程

    对于需要返回多行数据的情况,存储过程可以通过返回游标的方式实现。这种方式适用于返回多行或多列的数据。 ##### 创建程序包 ```sql CREATE OR REPLACE PACKAGE test_package AS TYPE Test_CURSOR IS REF CURSOR...

    Oracle 存储过程JAVA调用存储过程 游标使用

    存储过程是一组预先编译的SQL语句,可以接受参数,执行复杂操作,然后返回结果。在Oracle中,存储过程可以通过PL/SQL语言编写,它可以包含变量声明、控制流语句以及对数据库表的操作。 游标(Cursor)在数据库编程...

    jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标

    以下是一个调用返回游标的存储过程的例子: ```java CallableStatement cs = conn.prepareCall("{call package.procedure(?)}"); cs.registerOutParameter(1, OracleTypes.CURSOR); cs.execute(); ResultSet rs...

    java调用oracle存储过程并得到结果集

    执行存储过程并获取结果集: ```java cs.execute(); ResultSet resultSet = (ResultSet) cs.getObject(2); ``` `getObject(2)`会返回第二个参数,也就是我们在注册输出参数时指定的游标。 现在,我们可以遍历结果集...

    Java获取Oracle存储过程返回的Cursor

    执行存储过程后,通过getObject方法获取Cursor,然后遍历ResultSet处理返回的数据。 总结一下,Java通过ODBC6驱动获取Oracle存储过程返回的Cursor主要包括以下步骤: 1. 创建数据库连接。 2. 准备...

    java调用oracle存储过程返回结果集,Record,cursor.[参考].pdf

    - 执行存储过程后,通过`execute`方法,我们可以获取到结果集,即游标。 - `ResultSet`对象`rs`可以像处理普通的SQL查询结果一样进行遍历,读取存储过程返回的数据。 注意,处理返回的Cursor时,必须确保存储过程...

    自己封装的JDBC工具类源码

    7、调用过程返回游标并封装到list返回(包括包中过程); 8、调用函数返回游标并封装到list中返回(包括包中函数); 其中,与数据库的连接声明成了成员变量,建立连接后可执行各种操作,每个类中的statement、...

    Oracle 返回多个结果集

    在Oracle数据库中,返回多个结果集是一个常见的需求,特别是在处理复杂的查询或存储过程时。一个结果集通常对应于SQL查询的执行结果,但有时我们可能需要在一个操作中获取并处理多个独立的结果集。这就涉及到了...

    birt调用存储过程

    - **调用返回游标的存储过程**:BIRT支持通过游标获取数据,需要正确配置数据集以处理游标返回的结果。 - **调用返回多个结果集的存储过程**:如果存储过程返回多个结果集,BIRT会自动处理并分别显示每个结果集。 ...

Global site tag (gtag.js) - Google Analytics