http://blog.csdn.net/lizhenhuatop/article/details/2854731

集合:是具有相同定义的元素的聚合。Oracle有两种类型的集合:  
   
  可变长数组(VARRAY):可以有任意数量的元素,但必须预先定义限制值。  
   
  嵌套表:视为表中之表,可以有任意数量的元素,不需要预先定义限制值。  
   
   
  在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE   和Table   of   Record来代替多维数组,一样挺好用的。  
  emp_type   就好象一个table   中的一条record   一样,里面有id,   name,gender等。emp_type_array   象个table,   里面含有一条条这样的record   (emp_type),就象多维数组一样。  
   
  --单维数组  
  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   || &nb

sp; ',   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

用下面语句声明数组类型  
  type   intarray   is   varry(30)   of   integer;  
   
  用下面语句声明一个数组变量  
  declare    
      A   intarray;

一个例子

declare
  stmt varchar2(200);
  dept_no_array dbms_sql.Number_Table;
  c number;
  dummy number;
begin
  dept_no_array(1) := 10; dept_no_array(2) := 20;
  dept_no_array(3) := 30; dept_no_array(4) := 40;
  dept_no_array(5) := 30; dept_no_array(6) := 40;
  stmt := 'delete from emp where deptno = :dept_array';
  c := dbms_sql.open_cursor;
  dbms_sql.parse(c, stmt, dbms_sql.native);
  dbms_sql.bind_array(c, ':dept_array', dept_no_array, 1, 4);
  dummy := dbms_sql.execute(c);
  dbms_sql.close_cursor(c);

exception when others then
    if dbms_sql.is_open(c) then
      dbms_sql.close_cursor(c);
    end if;
    raise;
end;
/

oracle 数组定义相关推荐

  1. oracle中如何定义数组类型,oracle 之定义数组类型

    oracle 数组类型,没有现成的类型,但是可以自己随意定义,很方便. Oracle 数组可以分为定长数组和可变长的数组两类.以下主要是一维数组介绍: 定长数组: /*定长字符数组,数组大小为10*/ ...

  2. Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组

    1. 数组定义 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 2. 声明数组 Go 语言数组声明需要指定元素类型及元素个数,语 ...

  3. js便利关联数组 及数组定义方式 分类

    "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv=& ...

  4. python画数组曲线_python – 在matplotlib中如何填充由两组不同数组定义的两条曲线?...

    我有两组由两组数组定义的曲线:(x1,y1)和(x2,y2),我想用多边形填充它们.所有数组的长度相同,但x1和x2包含不同的值. plt.fill_between(x,y1,y2)要求两条曲线共享相 ...

  5. python 结构体数组 定义_一篇文章弄懂Python中所有数组数据类型

    前言 数组类型是各种编程语言中基本的数组结构了,本文来盘点下Python中各种"数组"类型的实现. list tuple array.array str bytes bytearr ...

  6. 数据结构之数组定义及基本操作(转)

    数据结构之数组定义及基本操作数据结构中最基本的一个结构就是线性结构,而线性结构又分为连续存储结构和离散存储结构.所谓的连续存储结构其实就是数组.数组本质其实也是数据的一种存储方式,既然有了数据的存储, ...

  7. 在php中可以使用几种方法定义数组,PHP中数组定义的几种方法

    在php.html" target="_blank">php和其他编程语言中,需要常常使用数组创建,我们在前端开发中,js的数组创建可以由new array创建,下 ...

  8. python中如何定义一个数组_Python数组定义方法

    本文实例讲述了Python数组定义方法.分享给大家供大家参考,具体如下: Python中没有数组的数据结构,但列表很像数组,如: a=[0,1,2] 这时:a[0]=0, a[1]=1, a[[2]= ...

  9. linux shell数组定义、元素获取及其长度获取

    linux shell数组定义.元素获取及其长度获取

最新文章

  1. HBase常用API操作
  2. python将EXCEL数据导入数据库时日期型数据变成数字并加.0的问题一行代码解决方案方案
  3. tkFileDialog报错,模块未找到出错:没有名字叫做 tkFileDialog 的模块
  4. java.lang.IllegalArgumentException: KeyValue size too large
  5. 玩转mini2440开发板之【编译u-boot提示没有规则可以创建“XX.o”需要的目标】
  6. FFMPEG分析比较细的文章
  7. 每日一题(14)—— 交换a,b的值(不使用中间变量)
  8. 混凝土墙开洞_易县混凝土剪力墙切割常见问题
  9. 【Flink】Flink 自定义 trigger并且进行分析
  10. 使用MongoDb连接数据库服务器
  11. ubuntu上下左右变成BD
  12. Spring Boot Actuator 监控和管理应用程序
  13. SAP系统登录以及注册开发人员
  14. 李开复致中国家长的信:培养快乐感性的孩子
  15. 腾讯地图SDK公交路线规划Demo
  16. uni-app注册自动获取短信信息
  17. 人工智能(AI)和机器学习——未来的发展趋势
  18. Dev c++ 怎么设置背景色
  19. 机器学习小组知识点4:批量梯度下降法(BGD)
  20. 2022年9月电子学会Python等级考试试卷(二级)答案解析

热门文章

  1. 对10个元素进行快速排序,在最好情况下,元素间的比较次数为( )次。
  2. G6 图可视化引擎——快速上手
  3. BASIC-5 查找整数
  4. 【Qt】2D绘图之涂鸦板
  5. 【Linux】一步一步学Linux——arpd命令(184)
  6. 【Android】关于Android控件EditText的属性InputType的一些经验
  7. 两个sql交集_数据库(sql)关键字
  8. asp连接mysql字符串_asp连接数据库字符串
  9. fullcalendar5.X版本 显示自定义html内容
  10. 最新 Linux安装项目环境 mysql 完整教程 100%可行.附带所有教程