文章转自:http://oracle.chinaitlab.com/induction/788759.html
1.建立包
create or replace package test is
TYPE filename_array IS TABLE OF varchar2(1);
filename filename_array;
end test;
2. 建立存储过程
create or replace procedure test_array(v_cfjg out test.filename_array ) is
begin DECLARE i number;
D_cfjg dic_cfjg%rowTYPE;
-- D_nr dic_cfjg%rowTYPE;
cursor c1 is SELECT * FROM dic_cfjg;
BEGIN
i:=0;
v_cfjg := test.filename_array(); --数组初始化
open c1;
LOOP fetch c1 into D_cfjg;
EXIT WHEN c1%NOTFOUND ;
i:=i+1;
v_cfjg.EXTEND;
-- DBMS_OUTPUT.PUT_LINE(TO_CHAR(D_cfjg.dm));
v_cfjg(v_cfjg.count):=D_cfjg.dm;
DBMS_OUTPUT.PUT_LINE(v_cfjg(v_cfjg.count));
-- 测试
-- FETCH C1 INTO D_cfjg;
-- EXIT WHEN c1%NOTFOUND ;
END LOOP;
end;
EXCEPTION
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('TOO_MANY_ROWS');
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(sqlerrm);
end test_array;
1.建立包
create or replace package test is
TYPE filename_array IS TABLE OF varchar2(1);
filename filename_array;
end test;
2. 建立存储过程
create or replace procedure test_array(v_cfjg out test.filename_array ) is
begin DECLARE i number;
D_cfjg dic_cfjg%rowTYPE;
-- D_nr dic_cfjg%rowTYPE;
cursor c1 is SELECT * FROM dic_cfjg;
BEGIN
i:=0;
v_cfjg := test.filename_array(); --数组初始化
open c1;
LOOP fetch c1 into D_cfjg;
EXIT WHEN c1%NOTFOUND ;
i:=i+1;
v_cfjg.EXTEND;
-- DBMS_OUTPUT.PUT_LINE(TO_CHAR(D_cfjg.dm));
v_cfjg(v_cfjg.count):=D_cfjg.dm;
DBMS_OUTPUT.PUT_LINE(v_cfjg(v_cfjg.count));
-- 测试
-- FETCH C1 INTO D_cfjg;
-- EXIT WHEN c1%NOTFOUND ;
END LOOP;
end;
EXCEPTION
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('TOO_MANY_ROWS');
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(sqlerrm);
end test_array;
发表评论
-
mongo db 分片 副本集 权限配置
2014-10-23 16:15 780用户和认证 权限总结 : http://blog. ... -
no sql
2013-06-17 13:37 569Redis教程 命令集合: http://doc.re ... -
redis mogodb
2013-06-14 16:29 0nothing -
nosql
2013-06-13 23:05 0fdf -
mogoDB and Redis
2013-05-31 10:41 9Redis教程 http://violet84 ... -
mysql
2013-05-18 18:27 407mysql性能查询 http://blog.csdn.n ... -
noSql
2013-05-16 22:12 350http://robbin.iteye.com/blog/ ... -
Q4M queue for Mysql
2013-05-16 21:21 569http://blog.csdn.net/tianjing ... -
dbcp/jdbc比较
2013-05-15 22:47 678http://www.oschina.net/question ... -
索引原理算法
2013-05-12 21:28 543b树索引 http://my.oschina.net/l ... -
分库 分表
2013-05-12 14:06 527http://zhengdl126.iteye.com/b ... -
表分区
2013-05-06 13:09 381http://space.itpub.net/219982/v ... -
DECODE函数的性能
2011-10-12 10:21 1044文章转自:http://dingchaoqun12.blog. ... -
oracle 锁机制
2011-10-08 23:05 677文章转自:http://www.blogjava.net/im ... -
mysql分页
2011-07-23 11:29 778转自: http://www.phpweblog.net/pe ... -
Oracle中Decode()函数使用技巧
2011-06-23 22:23 706DECODE函数是ORACLE PL/SQL是功能 ... -
SQL游标原理和使用方法
2011-06-23 22:21 1055转自:http://www.knowsky.com/34407 ... -
Oracle 中 decode 函数用法
2011-06-23 22:19 866作者:ZHF 出 ... -
种可以避免数据迁移的分库分表scale-out扩容方式
2011-06-23 22:16 1208转自:http://rdc.taobao.com/ ... -
Oracle 10g RAC的负载均衡配置
2011-06-23 22:14 868转自:http://www.cnblogs.com ...
相关推荐
总结来说,本示例展示了如何在Oracle存储过程中定义和使用结构化数组,以及如何在Java中调用这些存储过程并解析返回的多行多列数据。通过这种方式,你可以高效地处理复杂的数据结构,同时利用Java的灵活性来处理这些...
本话题将详细讲解如何使用Java调用带有参数的Oracle存储过程,并获取存储过程返回的集合。 首先,Oracle存储过程是一种预编译的SQL语句集合,它可以在数据库服务器端执行,提高性能,减少网络传输。`PROCEDURE.sql`...
存储过程是预编译的SQL语句集合,可以接受输入参数、返回结果以及执行复杂的业务逻辑。在Java中,尤其是使用Spring框架时,我们可以借助JDBC或ORM(对象关系映射)工具如Hibernate来调用这些存储过程。 在Spring中...
IN参数用于向存储过程传递输入值,而出参(OUT或INOUT)则用于存储过程内部计算的结果,可以在过程执行完毕后将这些值返回给调用者。 以下是一个名为`get_order_by_cust`的存储过程示例,它接受一个客户编号(IN...
本文介绍了Java调用Oracle存储过程返回结果集Record和Cursor的相关知识点,包括创建Type、PACKAGE和PROCEDURE,Java代码中调用存储过程,并获取结果集。这些知识点对深入了解Oracle存储过程和Java调用Oracle存储过程...
同时,存储过程也可以返回多个值,包括标量、数组和记录集等。 特色条款 存储过程可以包含多种特色条款,例如条件语句、循环语句和错误处理语句等。这些特色条款可以实现复杂的业务逻辑,提高存储过程的灵活性和可...
在SQL Server 2005中,存储过程(Procedure)是一种预编译的SQL语句集合,它们可以接受输入参数,执行复杂的业务逻辑,并返回结果。在这个特定的例子中,我们将探讨如何通过一个数组参数来传递数据给存储过程,这...
下面,我们将深入探讨如何使用`SQLHelper`类来调用带有输出或返回参数的存储过程,这在实际项目中极为常见。 ### 1. SQLHelper 类的作用 `SQLHelper`类是.NET框架中用于封装对数据库进行各种操作的方法集合,它的...
- **FIRST/LAST**:返回数组的第一个或最后一个元素的位置。 - **NEXT/PRIOR**:返回指定元素后或前的一个元素的位置。 - **TRIM**:移除数组尾部的空元素。 #### ASSOCIATIVE ARRAY (Indexed Table) `ASSOCIATIVE...
下面是一个返回查询行数的存储过程示例: ```sql ALTER PROCEDURE [dbo].[GetCustomers] AS BEGIN SELECT [CustomerID], [CompanyName], [ContactName], [ContactTitle], [Address], [City], [Region], ...
DB2存储过程使用SQL Procedure Language (SQLPL),这是SQL Persistent Stored Module (PSM) 标准的一个子集。SQLPL集成了SQL查询数据的便利性和传统编程语言的控制流程,使得开发者能够使用SQL语言开发复杂的程序...
### 存储过程实例解释与事务处理 #### 一、简单存储过程的创建与调用 首先,我们来看一个简单的存储过程示例:`dbo.testProcedure_AX`。 ```sql CREATE PROCEDURE dbo.testProcedure_AX AS select userID from ...
- 创建存储过程需要`CREATE PROCEDURE`系统权限。 - 如果存储过程需要被其他用户模式下的程序使用,则需要`CREATE ANY PROCEDURE`权限。 - 执行存储过程需要相应的执行权限,如`EXECUTE`或`EXECUTE ANY PROCEDURE...
CREATE OR REPLACE PROCEDURE 存储过程名 AS 变量1 类型(值范围); 变量2 类型(值范围); BEGIN -- SQL 语句 EXCEPTION -- 异常处理 END; ``` - **CREATE OR REPLACE**:用于创建或替换已存在的存储过程。 - *...
存储过程可以通过声明OUT或INOUT参数来返回结果集,也可以通过动态SQL语句来构造并返回结果集。 总结来说,DB2存储过程基础涉及到了SQL PL的语法、变量管理、流程控制、数据处理及错误处理等多个方面,这些都是...
在Oracle数据库中,存储过程是一种预编译的对象,它能够接收参数、执行SQL语句并返回结果。存储过程可以帮助提高应用程序性能,减少网络流量,并增强安全性。 创建存储过程的基本语法结构如下: ```sql CREATE OR ...
存储过程是一种在数据库中预先编写并编译好的SQL程序,它可以接受输入参数,并可返回多个输出参数。存储过程能够提高应用程序性能,增强代码重用性,并简化复杂操作。下面将详细介绍如何在Oracle中创建存储过程。 1...
这个例子中,我们假设有一个名为`my_procedure`的存储过程,接受一个String类型的数组作为输入,并返回一个整数值。 以上就是Java中将List传给存储过程的基本步骤和一个简单示例。实际项目中,你可能需要处理更复杂...
MySQL 数据存储过程是数据库管理中的一个...`in`参数只用来传递数据,`out`参数用于从存储过程返回结果,而`inout`参数则同时具备这两个功能。在实际应用中,根据需求选择适当的参数类型能提高代码的可读性和灵活性。
Informix存储过程是数据库中一种重要的程序设计元素,它允许用户在数据库中存储一系列SQL语句和SPL(Stored Procedure Language)命令,以便于执行重复的任务或实现复杂的业务逻辑。存储过程可以提高应用程序的性能...