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);
}
}
}
分享到:
相关推荐
虽然目前来看 PL/SQL Developer 的功能远不如 SQL Developer,但它是用纯 JAVA 开发的 ORACLE 数据库管理工具,所以可以比较轻松的支持跨操作系统平台使用,可以在非 windows OS 上使用。由于 PL/SQL Developer 在 ...
SQL Exporter did not export very old dates in date format - SQL Exporter could export floats with comma as decimal separator <br>PL/SQL Developer主要特性: PL/SQL编辑器,功能强大——该编辑器...
SQL Exporter did not export very old dates in date format - SQL Exporter could export floats with comma as decimal separator <br>PL/SQL Developer主要特性: PL/SQL编辑器,功能强大——该编辑器...
PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。 . 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序...
PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。 . 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL...
FTP存储过程:可在PL/SQL中直接调用去获取远程FTP服务器中的文件。
PL/SQL的出现正是为了解决这一问题,PL/SQL是一种过程化语言,属于第三代语言,它与C、 C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。本文主要介绍PL/SQL的编程基础,以使入门者对PL/SQL...
另外,还含有历史缓存,您可以轻松调用先前执行过的SQL语句。该SQL编辑器提供了同PL/SQL编辑器相同的强大特性。 命令窗口——使用PL/SQL Developer 的命令窗口能够开发并运行SQL脚本。该窗口具有同SQL*Plus相同...
另外,还含有历史缓存,您可以轻松调用先前执行过的SQL语句。该SQL编辑器提供了同PL/SQL编辑器相同的强大特性。 命令窗口 使用PL/SQL Developer 的命令窗口能够开发并运行SQL脚本。该窗口具有同SQL*Plus相同的感观...
另外,还含有历史缓存,您可以轻松调用先前执行过的SQL语句。该SQL编辑器提供了同PL/SQL编辑器相同的强大特性。 命令窗口——使用PL/SQL Developer 的命令窗口能够开发并运行SQL脚本。该窗口具有同SQL*Plus相同的...
至此,test_procedure存储过程已经完成,经过编译后就可以在其他PL/SQL块或者过程中调用了。 函数与过程具有很大的相似性,此处不再详述。 编辑本段 游标 游标的定义为:用游标来指代一个DML SQL操作返回的...
接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT),与函数不 同,存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用
PL/SQL 各种工具包,包含PDF生成PLSQL工具包 Excel文件生成、 RTF文件生成、 Zip文件压缩与解压、 JSON格式文件生成与解析、 通过PLSQL调用FTP、 发送电子邮寄工具包、 SOAP and REST web services工具包、 XML、HTTP...
在Web Services红得发紫的今天,到处都在谈论和使用Web Services;Oracle也始终走在技术的最前沿,早在9i...本文将通过一个实例向你展示如何通过PL/SQL调用Web Services,本文的重点是PL/SQL调用Web Services实现上。
SQL Exporter did not export very old dates in date format - SQL Exporter could export floats with comma as decimal separator <br>PL/SQL Developer主要特性: PL/SQL编辑器,功能强大——该编辑器...
本例子使用PL/SQL解析和生成XML文件,详细查看rar包中的“说明.txt”
PL/SQL有三种集合 联合数组 嵌套表 可变数组 联合数组详解: 什么是数组?数组有什么特点 数据是线性存放的,在内存中地址是连续的 可以用索引来访问 定义联合数组? 联合数组不需要定义长度,他能容纳的元素最大...
PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。 . 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL...
PL/SQL语言是的SQL语言扩展,具有为程序开发而设计的特性,如数据封装、异常处理、面向对象等特性。 PL/SQL是嵌入到Oracle服务器和开发工具中的,具有很高的执行效率和同Oracle数据库的完美结合。在PL/SQL模块中可以...