`
xiebh
  • 浏览: 610444 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

Oracle:PL/SQL 中如何使用Array

阅读更多
Oracle本身没数组的概念,但是通过Oracle的Collections和Records类型可以模仿出单维数组和多维数组。

请参考<<Oracle PL/SQL Programming>> Chapter 11、Chapter 12。


---------------------- 单维数组 ------------------------
DECLARE
TYPE emp_ssn_array IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; ----注:声明一个Collection

best_employees emp_ssn_array;
worst_employees emp_ssn_array;

BEGIN
best_employees(1) := '123456';
best_employees(2) := '888888';

worst_employees(1) := '222222';
worst_employees(2) := '666666';

FOR i IN 1..best_employees.count LOOP
DBMS_OUTPUT.PUT_LINE('i='|| i || ', best_employees= ' ||best_employees(i)
|| ', worst_employees= ' ||worst_employees(i));
END LOOP;

END;



---------------------- 多维数组 ------------------------

DECLARE

TYPE emp_type IS RECORD ---------注:声明一个Record类型 emp_type
( emp_id employee_table.emp_id%TYPE,           ----Record类型中的成员...
emp_name employee_table.emp_name%TYPE,
emp_gender employee_table.emp_gender%TYPE );

TYPE emp_type_array IS TABLE OF emp_type INDEX BY BINARY_INTEGER;----注:声明一个Collection类型 emp_type_array ,其中元素为emp_type类型

emp_rec_array emp_type_array;
emp_rec emp_type;

BEGIN
emp_rec.emp_id := 300000000;
emp_rec.emp_name := 'Barbara';
emp_rec.emp_gender := 'Female';

emp_rec_array(1) := emp_rec;

emp_rec.emp_id := 300000008;
emp_rec.emp_name := 'Rick';
emp_rec.emp_gender := 'Male';

emp_rec_array(2) := emp_rec;

FOR i IN 1..emp_rec_array.count LOOP
DBMS_OUTPUT.PUT_LINE('i='||i
||', emp_id ='||emp_rec_array(i).emp_id
||', emp_name ='||emp_rec_array(i).emp_name
||', emp_gender = '||emp_rec_array(i).emp_gender);
END LOOP;

END;

-------------- Result --------------
i=1, emp_id =300000000, emp_name =Barbara, emp_gender = Female
i=2, emp_id =300000008, emp_name =Rick, emp_gender = Male

更多参考资料:
1、http://dev.yesky.com/SoftChannel/72342371928965120/20020819/1625866.shtml
2、http://blog.csdn.net/qfs_v/archive/2008/05/18/2455319.aspx
分享到:
评论

相关推荐

    oracle数据库 PL/SQL教程

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

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

    ### Oracle PL/SQL测试题目与知识点解析 #### 一、选择题知识点解析 **1. Oracle数据库中为新创建的表分配的初始空间通常为多大?** - **知识点解析:** Oracle数据库为新创建的表分配的空间单位是“区”(Extent...

    13oracle的PL/SQL编程-定义并使用变量 PPT

    在PL/SQL中,我们使用`:=`操作符来给变量赋值,或者使用`ASSIGN`语句(虽然`ASSIGN`在标准PL/SQL中不常见,但在某些Oracle工具或扩展中可能可用): ```sql num_var := 456; -- 赋新值 str_var := 'World'; -- 更改...

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

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作功能与PL/SQL的流程控制和编程特性,广泛应用于Oracle数据库的开发和管理。本资源"Oracle.PL.SQL程序设计_第五版03df"是关于Oracle ...

    Oracle 8i PL_SQL高级程序设计

    Oracle 8i PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库系统中用于扩展SQL语言的一种过程式编程语言。它允许开发者编写复杂的业务逻辑,实现存储过程、触发器、函数、包等数据库对象,...

    PL/SQL编程

    #### 5.4 在PL/SQL中使用SQLCODE, SQLERRM SQLCODE和SQLERRM是两个系统变量,分别用于返回最后执行的SQL语句的错误代码和错误消息。这些变量可以用于调试和日志记录目的。 ### 第六章 存储函数和过程 #### 6.1 ...

    只能在PL/SQL中访问联合数组。

    在Oracle数据库的PL/SQL环境中,联合数组(Varying Array)是一种特殊的变量类型,它允许程序员存储一组相同类型的元素,这些元素可以是数值、字符串或其他复杂的数据类型。联合数组在PL/SQL中扮演着重要角色,特别...

    Oracle 10g SQL操作和PLSQL所有命令集合

    Oracle 10g是一款强大的关系型数据库管理系统,其SQL(结构化查询语言)和PL/SQL(过程化SQL)是数据库管理员和开发人员进行数据管理、处理和应用开发的重要工具。下面将详细介绍这些主题中的关键知识点。 首先,...

    PL/SQL学习笔记

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

    pl/sql学习

    本文将详细介绍PL/SQL中的三种主要集合类型:Index_by表、嵌套表和VARRAY,并讨论如何在实际应用中使用这些集合。 #### 二、集合类型 ##### 1. Index_by表(联合数组) **定义** Index_by表是一种特殊的PL/SQL...

    Oracle Database 12c PL-SQL programming

    Filled with detailed examples and expert strategies from an Oracle ACE, Oracle Database 12c PL/SQL Programming explains how to retrieve and process data, write PL/SQL statements, execute effective ...

    Oracle plsql 参考文档

    Oracle PL/SQL是一种强大的编程语言,它将SQL与过程式编程语言的功能相结合,为数据库管理员和开发者提供了在Oracle数据库环境中创建复杂应用的能力。这个参考文档是Oracle PL/SQL的全面指南,涵盖了从基础到高级的...

    pl-sql.zip_vectors

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

    plsql8.000

    PL/SQL是Oracle数据库系统中的一个关键组成部分,全称为Procedural Language/SQL,它将SQL语句与过程式编程语言结合在一起,为数据库管理员和开发者提供了强大的数据处理能力。"plsql8.000"可能指的是针对Oracle 8.0...

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

    本书由Michael McLaughlin撰写,涵盖了Oracle Database 11g版本中PL/SQL编程的所有核心概念和技术。 #### 1. Oracle Database 11g简介 - **版本更新**:Oracle Database 11g是Oracle公司推出的数据库管理系统的一...

    Oracle PL/JSON

    这个库允许数据库用户在 SQL 和 PL/SQL 代码中方便地生成、解析和操作 JSON 对象,使得 Oracle 数据库能够更好地适应现代 Web 开发的需求,特别是与 RESTful API 的交互。 PL/JSON 库提供了以下主要功能: 1. **...

    pl/sql学习小结笔记

    PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库的一种扩展语言,用于处理数据库中的数据和实现复杂的业务逻辑。以下是对PL/SQL的基础知识进行的详细阐述: 1. **匿名块与命名块**: ...

    老二牛车第五章理论课使用PLSQL.pdf

    3. **可移植性**:PL/SQL程序可以在任何支持Oracle数据库的操作系统或平台上运行,这意味着开发者可以轻松地将应用程序移植到不同的环境中,提高了代码的复用性和灵活性。 4. **高性能**:由于PL/SQL是编译执行的...

Global site tag (gtag.js) - Google Analytics