`
yingxiongwudi
  • 浏览: 58720 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Java 调用PL/SQL Array

阅读更多
Java 调用PL/SQL Returning Object Array

实现在java调用返回值是数组的存储过程方法。

1. 数组:CYJ_ARRAY

CREATE OR REPLACE TYPE CYJ_ARRAY is VARRAY(20) OF integer

2. 存储过程:getTestArray()

CREATE OR REPLACE FUNCTION getTestArray RETURN CYJ_ARRAY
AS
  l_test CYJ_ARRAY :=CYJ_ARRAY();

   begin
    FOR i IN 1..10 LOOP
      l_test.extend;
      l_test(l_test.count) := i;
      dbms_output.put_line(l_test(l_test.count));
    END LOOP;
    RETURN  l_test;
  END;
3. 调用存储过程的java 类

public class TestOracleReturnArray  {


public static void main(String[] args) throws SQLException {
Connection conn = null;
CallableStatement cstmt = null;
ResultSet rs = null;
try {
 
  DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora","zzz","sss");
 
  conn.setAutoCommit(false);
  String procedure = "{? = call getTestArray() }";// 调用存储过程
  cstmt = conn.prepareCall(procedure);
  cstmt.registerOutParameter(1, OracleTypes.ARRAY,"CYJ_ARRAY"); //注:type name:区分大小,不是包中的type, 使用包中定义的type如何调用还不知道
 
  cstmt.execute();
  ARRAY array = (ARRAY)cstmt.getObject(1);
  Object[] items = (Object[])array.getArray();
  Object obj;
 
  for (int i = 0; i < items.length; i++) {
    obj = items[i];
  
   System.out.println(obj);
  
   } // for
} catch (Exception e) {
  e.printStackTrace();
} finally {
  //DbConnRestore.connRestore(rs, cstmt, null, conn);
}
}

}
分享到:
评论
1 楼 k_gx 2009-04-08  
请问楼主有没有碰到过查询出来的VARCHAR2型的字符都是?的情况?

相关推荐

    oracle PL/SQL测试题目和详细答案

    - **B、自定义函数可以在SQL语句中调用、也可以在PL/SQL块中调用**:正确,函数可以在多种上下文中调用。 - **C、自定义函数可以返回表类型**:正确,可以返回复杂数据类型。 - **D、自定义函数中的参数可以是OUT...

    PL/SQL编程

    除了基本类型外,PL/SQL还支持复合类型,如数组(ARRAY)和记录(RECORD)。 - **数组**: 包括索引数组(INDEX BY)和表(TABLE)。 - **记录**: 可以定义包含多个字段的数据结构。 ##### 2.4.3 使用%ROWTYPE %...

    oracle数据库 PL/SQL教程

    ### Oracle数据库PL/SQL教程知识点概览 #### 1. PL/SQL介绍 PL/SQL(Procedural Language for SQL)是Oracle数据库的一种过程化语言,它将SQL语句与传统编程语言的功能相结合,用于创建复杂的数据库应用程序。PL/...

    PL/SQL学习笔记

    PL/SQL有三种集合 联合数组 嵌套表 可变数组 联合数组详解: 什么是数组?数组有什么特点 数据是线性存放的,在内存中地址是连续的 可以用索引来访问 定义联合数组? 联合数组不需要定义长度,他能容纳的元素最大...

    pl/sql学习小结笔记

    - **匿名块**:在PL/SQL中,匿名块是一段未命名的代码块,它不能被其他程序调用,常用于临时的测试和调试。声明局部变量后,可以在BEGIN和END之间编写执行语句。 ```sql declare i integer; begin -- 测试语句...

    Oracle.PL.SQL程序设计_第五版03df

    9. **记录和集合类型**:PL/SQL支持记录(ROWTYPE)和集合(ARRAY、INDEX BY TABLE)类型,它们在处理多行数据和数组操作时非常有用。 10. **游标变量和复合类型**:游标变量可以作为参数传递,复合类型则允许...

    Oracle.Database.11g.PL.SQL.Programming

    - **ASP.NET 和 Java (J2EE)**:这些Web开发框架可以调用存储在Oracle数据库中的PL/SQL程序,实现前后端分离的架构设计。 - **C#**:通过ADO.NET等技术,C#应用程序可以直接调用Oracle数据库中的PL/SQL存储过程。 #...

    pl-sql.zip_vectors

    PL/SQL是Oracle数据库系统中的过程化语言,它结合了SQL查询和编程的特性,使得开发者可以编写复杂的数据库应用程序。在“pl-sql.zip_vectors”这个压缩包中,重点涉及的是PL/SQL基础过程、向量操作以及触发器的使用...

    pl-sql基础 sql基础编程

    PL/SQL支持多种集合类型,如VARRAY(变长数组)、NESTED TABLE(嵌套表)和ASSOCIATIVE ARRAY(关联数组)。通过集合,可以在PL/SQL程序中高效地存储和处理大量数据。 #### 三、单行函数与组函数 在SQL和PL/SQL中...

    PLSQL程序设计.doc

    3. 包含在其他应用程序中,如Java或C通过数据库接口调用。 ### 第二章 PL/SQL块结构和组成元素 #### §2.1 PL/SQL块 PL/SQL程序由一个或多个块组成,每个块都有声明部分、执行部分和异常处理部分。 #### §2.2 ...

    Java调用oracle函数返回oracle类(类似)集合

    在Java中调用Oracle函数并处理返回的Oracle特定数据类型,如集合或索引表,通常涉及到Oracle的PL/SQL包和Java的JDBC驱动。以下是对这个主题的详细说明: 1. **Oracle索引表类型**: Oracle索引表是一种PL/SQL数据...

    Oracle PL SQL语言基础

    7. **存储过程和函数**:这两种是PL/SQL的高级特性,可以封装代码并供其他程序调用。例如: ```sql CREATE OR REPLACE PROCEDURE proc_name (param1 IN NUMBER, param2 OUT VARCHAR2) AS BEGIN -- code here ...

    Oracle集合类型输出参数的PLSQL存储过程及其Java调用.doc

    Oracle集合类型输出参数的PL/SQL存储过程及Java调用主要涉及如何在Oracle数据库中使用存储过程处理集合数据,并在Java应用中调用这些过程。本文档介绍了一种使用索引表作为输出参数的方法,以及如何在Java中处理返回...

    PLSQL最佳实践

    ### PL/SQL最佳实践 #### 概述 PL/SQL是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据操作能力和传统过程化语言的控制结构,使得开发人员能够编写复杂的应用程序并有效地与数据库交互。本文档将详细...

    pljson-master

    1. **创建JSON对象**:通过调用特定的函数,如`json_object`或`json_array`,可以创建JSON对象和数组。 2. **解析JSON**:使用`json_parser`来解析JSON字符串,并将其转换为PL/SQL变量或记录。 3. **查询和修改JSON*...

    Java调用oracle存储过程输出自定义对象或二维表

    当存储过程返回自定义对象时,你需要创建一个对应的Java类来映射Oracle的PL/SQL记录类型。例如,如果你有一个名为`MY_OBJECT`的PL/SQL记录类型,你可以创建如下Java类: ```java public class MyObject { private ...

    java调用存储过程返回数组

    在PL/SQL中,可以定义如`USERSEQID_ARRAY`、`USERNAME_ARRAY`和`USERPWD_ARRAY`这样的自定义数组类型。这些类型可以作为输入或输出参数在存储过程中使用。 在Java中,处理这些自定义数组类型需要特殊的方法。Oracle...

Global site tag (gtag.js) - Google Analytics