当前位置: 代码迷 >> Oracle管理 >> 参数含有数组的procedure?解决方法
  详细解决方案

参数含有数组的procedure?解决方法

热度:87   发布时间:2016-04-24 05:55:43.0
参数含有数组的procedure?
CREATE OR REPLACE PROCEDURE test_proc (out 数组参数) 这个procedure该如何定义?

------解决方案--------------------
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),就象多维数组一样。
--单维数组
 
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;
  相关解决方案