易截截图软件、单文件、免安装、纯绿色、仅160KB

如何从 PL/SQL 存储函数返回数组

日期:2003 年 2 月 19 日
完成此方法指南后,您应该能够:
在 Oracle 数据库中创建 VARRAY
使用 oracle.sql.ARRAY 类
从 Java 访问 VARRAY
简介
本文档演示如何从 PL/SQL 函数返回数组并从 java 应用程序访问它。数组是一组有序的数据元素。 VARRAY 是大小可变的数组。它具有数据元素的排列集,并且所有元素属于同一数据类型。每个元素都具有索引,它是与元素在 VARRAY 中的位置相对应的一个数字。 VARRAY 中元素的数量是 VARRAY 的“大小”。在声明 VARRAY 类型时,必须指定其最大值。
在此方法指南中,PL/SQL 存储函数从 SCOTT 模式的 EMP 表中取出所有雇员的姓名,以这些姓名创建一个数组并将其返回。从 Java 应用程序调用此 PL/SQL 存储函数,向用户显示雇员的姓名。
软件需求
Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i 数据库。
JDK1.2.x 或更高版本。可从此处下载。
Oracle9i JDBC 驱动程序。JDBC 驱动程序可从 ORACLE_HOME/jdbc/lib 处获得。也可从此处下载。
在数据库中创建一个 SQLVARRAY 类型,在本例中,它是 VARCHAR2 类型。 作为 scott/tiger 用户连接到数据库,并在 SQL 提示符处执行以下命令。
SQL>CREATE OR REPLACE TYPE EMPARRAY is VARRAY(20) OF VARCHAR2(30)
SQL>/
然后创建下面的函数,它返回一个 VARRAY。
CREATE OR REPLACE FUNCTION getEmpArray RETURN EMPARRAY
AS
l_data EmpArray := EmpArray();
CURSOR c_emp IS SELECT ename from EMP;
BEGIN
FOR emp_rec IN c_emp LOOP
l_data.extend;
l_data(l_data.count) := emp_rec.ename;
END LOOP;
RETURN l_data;
END;
在数据库中创建函数后,可以从 java 应用程序调用它并在应用程序中获得数组数据。下面给出代码段,从 Java 应用程序执行 PL/SQL 存储函数。单击此处查看完整的应用程序源代码。
public static void main( ) {
.........
.........
OracleCallableStatement stmt =(OracleCallableStatement)conn.prepareCall
( "begin ?:= getEMpArray; end;" );
// The name we use below, EMPARRAY, has to match the name of the
// type defined in the PL/SQL Stored Function
stmt.registerOutParameter( 1, OracleTypes.ARRAY,"EMPARRAY" );
stmt.executeUpdate();
// Get the ARRAY


相关文档:

SQL UNION 和 UNION ALL 操作符

 SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) from table_name1
UNION
SELECT column_name(s) from tabl ......

SQL 通用存储过程


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/ ......

SQL查询语句大全 T

 --语 句                                功 能
1、数据操作
Select      --从数据库表中检索数据行和列
Insert & ......

sql 交叉表

交叉表语句的实现:
  用于:交叉表的列数是确定的
  select name,sum(case subject when '数学' then source else 0 end) as '数学',
  sum(case subject when '英语' then source else 0 end) as '英语',
  sum(case subject when '语文' then source else 0 end) as '语文'
  from test
  group by name ......

sql 常用操作语句收集


    SQL重复记录查询(转自http://blog.csdn.net/RainyLin/archive/2009/02/17/3901956.aspx)
 SQL重复记录查询
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select   peopleId from   people group ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号