如何在Oracle procedure中定义一个数组
来源:互联网 发布:药智数据 保健品 编辑:程序博客网 时间:2024/05/16 19:37
http://topic.csdn.net/t/20060112/17/4513467.html
集合:是具有相同定义的元素的聚合。Oracle有两种类型的集合:
可变长数组(VARRAY):可以有任意数量的元素,但必须预先定义限制值。
嵌套表:视为表中之表,可以有任意数量的元素,不需要预先定义限制值。
在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Record来代替多维数组,一样挺好用的。
emp_type 就好象一个table 中的一条record 一样,里面有id, name,gender等。emp_type_array 象个table, 里面含有一条条这样的record (emp_type),就象多维数组一样。
--单维数组
集合:是具有相同定义的元素的聚合。Oracle有两种类型的集合:
可变长数组(VARRAY):可以有任意数量的元素,但必须预先定义限制值。
嵌套表:视为表中之表,可以有任意数量的元素,不需要预先定义限制值。
在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Record来代替多维数组,一样挺好用的。
emp_type 就好象一个table 中的一条record 一样,里面有id, name,gender等。emp_type_array 象个table, 里面含有一条条这样的record (emp_type),就象多维数组一样。
--单维数组
- SQL code
- 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;
--多维数组
- SQL code
- 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;BEGINemp_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 LOOPDBMS_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 = Femalei=2, emp_id =300000008, emp_name =Rick, emp_gender = Male */
- 如何在Oracle procedure中定义一个数组
- java中如何定义一个二维数组
- 在SQL Developer中Debug一个procedure
- 在Almel Studio6中如何定义一个数组到Flash寄存器
- java 在窗口中如何定义一个文本框类型的数组
- oracle 的procedure 中使用游标和数组的说明
- Excel中如何定义一个变量在表达式中使用
- 如何在C#中定义动态的数组结构啊??
- 如何在Android中定义容量巨大的数组
- 如何在oracle中定制一个job
- oracle 在plsql中创建procedure并调用
- 如何获取一个未在php中定义的类
- C#中如何定义数组
- oracle 编写一个过程procedure
- 如何在Store Procedure中调用VB COM
- 如何在FORM或PROCEDURE中调用XML报表
- php如何定义一个常量数组
- 如何动态定义一个 对象指针数组
- 里面link的media=”screen”意思
- C++对象中的私有成员变量也可以被访问
- gcc查看函数调用的方法
- Spring Security3十五日研究(转载)
- 国内主要工作流厂商分析
- 如何在Oracle procedure中定义一个数组
- 异常 java.security.AccessControlException: access denied (javax.management.MBeanTrustPermission regist
- PostgreSQL 的一个简单连接和查询操作——示例
- tc2.0环境下的C语言研究-关于main函数编程
- java调用webservice的各种方法总结
- ios NSArray数组写plist的文件的代码
- C# 数据类型介绍
- Linux之VI编辑器的使用
- How to clear subclipse and subversion password