Oracle:PL/SQL 中如何使用Array
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),就象多维数组一样。
Oracle:PL/SQL 中如何使用Array相关推荐
- oracle 全局临时变量,如何解析Oracle PL / SQL中的简单XML片段并将其加载到全局临时表中?...
Oracle的XML数据库实现有一些令人困惑的令人眼花缭乱的选项,并且在任何给定的场景中并不总是清楚(至少对我而言).在这种特殊情况下,你想要的是 XMLTable(),它将XQuery变成一组行. ...
- Oracle PL/SQL中异常高级特性
在OraclePL/SQL语句块中exception的异常处理部分是非常重要的组成部分,它决定了在PL/SQL语句块内部可执行部分在发生异常错误时,程序是友好地提示:程序遇到某些错误而无法执行,还是抛 ...
- Oracle PL/SQL中的循环处理(sql for循环)
今年春节算是休了个长假,调整好心态,迎接新一年的挑战. 今天来说下Oracle中的循环迭代处理,因为从自己的博客统计中看到,不少网友都搜索了关键字"SQL FOR循环",所以打算在 ...
- oracle获取堆栈,如何从RAISED异常中获取oracle PL / SQL中原始异常的堆栈跟踪?
我有一个问题,当我捕获异常时,原始堆栈跟踪丢失,然后提高它. >在proc_a中抛出异常 >抓住例外. >执行回滚. >提出异常. >捕获异常(父块) >打印堆栈跟 ...
- Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
1. 使用%TYPE 在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据.在这种情况下,变量应该拥有与表列相同的类型.例如,students表的first_name列的类型为VARCHAR2 ...
- Oracle PL/SQL中的触发器
sql语句的执行一般都是一条一条的,当我们想执行了某一条sql语句时,会自动执行某些事件,这个时候就可以用到触发器.触发器顾名思义就是一件事的发生会被触发产生某一个事件. 创建了某触发 ...
- oracle pl/sql 中目录的创建
模式: create or replace directory 目录名 as '目录地址'; 举例: create or replace directory MEDIA_DIR as 'd:\or ...
- Oracle PL/SQL中EXCEPTION用法
1.自定義EXCEPTION DECLARE past_due EXCEPTION; acct_num NUMBER := 2; BEGIN DECLARE ---------- sub-block ...
- oracle 自定义类型使用方法,oracle pl/sql中使用自定义数据类型
模式: CREATE OR REPLACE TYPE 类型名 as OBJECT (属性名 属性类型,...); 举例: CREATE OR REPLACE TYPE BITS_IDX_BASE AS ...
最新文章
- 【Qt】Qt程序编译成功,执行时报错:程序异常结束,crashed
- SQL2008R2 express版本不支持维护计划
- iphone以旧换新活动_iPhone销量靠降价,安卓终于要赢了?
- 【Rxjs】 - 解析四种主题Subject
- python学习 day6 (3月7日)
- 工作224:当前函数造成
- 大学计算机基础实训excel,大学计算机基础实训指导书
- 敏捷开发团队绩效管理与目标管理:关于如何为团队设立外部目标
- “10 倍工程师”引争议,程序员再被妖魔化?
- 雷霆战机单机老版本_雷霆战机单机版
- python的官网下载安装教程
- PHP框架高级编程——应用Symfony、CakePHP和Zend
- 双绞线为什么要绞起来
- kui 组件化库思路(来啦,老弟,持续更新哦,部署gitpages,添加issue)
- css 设置层级关系,css层级关系怎么设置
- 纸壳CMS现已支持自定义扩展字段
- ExpandableListView 实现评价回复功能
- logstash解析iis日志
- leetcode动态规划之零钱兑换问题
- Unskilled in English is looked down on by people (composition)