http://tech.163.com/05/0701/10/1NIODMQS00091589.html

 因为在PL/SQL 中并没有数组. 这是偶查资料找的范例和自己写的范例来解释如何在PL/SQL 中使用数组. 也许很多人已知道, 不过就是让不知道的朋友们了解一下吧。
---------------------- 单维数组------------------------
DECLARE
TYPE emp_ssn_array IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
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
( emp_id employee_table.emp_id%TYPE,
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;
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

:在PL/SQL 中是没有数组(Array) 概念的. 但是如果程序员想用Array 的话, 就得变通一下, 用TYPE 和Table of Record 来代替多维数组, 一样挺好用的。
emp_type 就好象一个table 中的一条record 一样, 里面有id, name,gender等。emp_type_array 象个table, 里面含有一条条这样的record (emp_type),就象多维数组一样。

本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/archive/2012/03/22/2411814.html,如需转载请自行联系原作者。

Oracle:PL/SQL 中如何使用Array相关推荐

  1. oracle 全局临时变量,如何解析Oracle PL / SQL中的简单XML片段并将其加载到全局临时表中?...

    Oracle的XML数据库实现有一些令人困惑的令人眼花缭乱的选项,并且在任何给定的场景中并不总是清楚(至少对我而言).在这种特殊情况下,你想要的是 XMLTable(),它将XQuery变成一组行. ...

  2. Oracle PL/SQL中异常高级特性

    在OraclePL/SQL语句块中exception的异常处理部分是非常重要的组成部分,它决定了在PL/SQL语句块内部可执行部分在发生异常错误时,程序是友好地提示:程序遇到某些错误而无法执行,还是抛 ...

  3. Oracle PL/SQL中的循环处理(sql for循环)

    今年春节算是休了个长假,调整好心态,迎接新一年的挑战. 今天来说下Oracle中的循环迭代处理,因为从自己的博客统计中看到,不少网友都搜索了关键字"SQL FOR循环",所以打算在 ...

  4. oracle获取堆栈,如何从RAISED异常中获取oracle PL / SQL中原始异常的堆栈跟踪?

    我有一个问题,当我捕获异常时,原始堆栈跟踪丢失,然后提高它. >在proc_a中抛出异常 >抓住例外. >执行回滚. >提出异常. >捕获异常(父块) >打印堆栈跟 ...

  5. Oracle PL/SQL中如何使用%TYPE和%ROWTYPE

    1. 使用%TYPE 在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据.在这种情况下,变量应该拥有与表列相同的类型.例如,students表的first_name列的类型为VARCHAR2 ...

  6. Oracle PL/SQL中的触发器

    sql语句的执行一般都是一条一条的,当我们想执行了某一条sql语句时,会自动执行某些事件,这个时候就可以用到触发器.触发器顾名思义就是一件事的发生会被触发产生某一个事件.         创建了某触发 ...

  7. oracle pl/sql 中目录的创建

    模式: create or replace directory 目录名 as '目录地址'; 举例: create or replace directory MEDIA_DIR   as 'd:\or ...

  8. Oracle PL/SQL中EXCEPTION用法

    1.自定義EXCEPTION DECLARE past_due EXCEPTION; acct_num NUMBER := 2; BEGIN DECLARE  ---------- sub-block ...

  9. oracle 自定义类型使用方法,oracle pl/sql中使用自定义数据类型

    模式: CREATE OR REPLACE TYPE 类型名 as OBJECT (属性名 属性类型,...); 举例: CREATE OR REPLACE TYPE BITS_IDX_BASE AS ...

最新文章

  1. 【Qt】Qt程序编译成功,执行时报错:程序异常结束,crashed
  2. SQL2008R2 express版本不支持维护计划
  3. iphone以旧换新活动_iPhone销量靠降价,安卓终于要赢了?
  4. 【Rxjs】 - 解析四种主题Subject
  5. python学习 day6 (3月7日)
  6. 工作224:当前函数造成
  7. 大学计算机基础实训excel,大学计算机基础实训指导书
  8. 敏捷开发团队绩效管理与目标管理:关于如何为团队设立外部目标
  9. “10 倍工程师”引争议,程序员再被妖魔化?
  10. 雷霆战机单机老版本_雷霆战机单机版
  11. python的官网下载安装教程
  12. PHP框架高级编程——应用Symfony、CakePHP和Zend
  13. 双绞线为什么要绞起来
  14. kui 组件化库思路(来啦,老弟,持续更新哦,部署gitpages,添加issue)
  15. css 设置层级关系,css层级关系怎么设置
  16. 纸壳CMS现已支持自定义扩展字段
  17. ExpandableListView 实现评价回复功能
  18. logstash解析iis日志
  19. leetcode动态规划之零钱兑换问题
  20. Unskilled in English is looked down on by people (composition)

热门文章

  1. MIT给人工智能“泼冷水”:AI创造性目前有限
  2. 在医疗领域你知道哪些人工智能黑科技?
  3. SD VC - 变式价格
  4. 2018深度学习引用数最高的十大论文
  5. 十项观察!药物开发中的AI现状
  6. AI 在携程智能客服的应用
  7. 深度学习与工业互联网安全:应用与挑战
  8. 震撼!15项世界互联网领先科技成果发布,将对你的生活产生什么影响?
  9. 中科院脑科学与智能技术卓越创新中心:在“脑海”中突破进取
  10. 人工智能、区块链、混合现实:2019年新闻、媒体与技术趋势