oracle 数组定义
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;
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 数组定义相关推荐
- oracle中如何定义数组类型,oracle 之定义数组类型
oracle 数组类型,没有现成的类型,但是可以自己随意定义,很方便. Oracle 数组可以分为定长数组和可变长的数组两类.以下主要是一维数组介绍: 定长数组: /*定长字符数组,数组大小为10*/ ...
- Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组
1. 数组定义 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 2. 声明数组 Go 语言数组声明需要指定元素类型及元素个数,语 ...
- js便利关联数组 及数组定义方式 分类
"http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv=& ...
- python画数组曲线_python – 在matplotlib中如何填充由两组不同数组定义的两条曲线?...
我有两组由两组数组定义的曲线:(x1,y1)和(x2,y2),我想用多边形填充它们.所有数组的长度相同,但x1和x2包含不同的值. plt.fill_between(x,y1,y2)要求两条曲线共享相 ...
- python 结构体数组 定义_一篇文章弄懂Python中所有数组数据类型
前言 数组类型是各种编程语言中基本的数组结构了,本文来盘点下Python中各种"数组"类型的实现. list tuple array.array str bytes bytearr ...
- 数据结构之数组定义及基本操作(转)
数据结构之数组定义及基本操作数据结构中最基本的一个结构就是线性结构,而线性结构又分为连续存储结构和离散存储结构.所谓的连续存储结构其实就是数组.数组本质其实也是数据的一种存储方式,既然有了数据的存储, ...
- 在php中可以使用几种方法定义数组,PHP中数组定义的几种方法
在php.html" target="_blank">php和其他编程语言中,需要常常使用数组创建,我们在前端开发中,js的数组创建可以由new array创建,下 ...
- python中如何定义一个数组_Python数组定义方法
本文实例讲述了Python数组定义方法.分享给大家供大家参考,具体如下: Python中没有数组的数据结构,但列表很像数组,如: a=[0,1,2] 这时:a[0]=0, a[1]=1, a[[2]= ...
- linux shell数组定义、元素获取及其长度获取
linux shell数组定义.元素获取及其长度获取
最新文章
- HBase常用API操作
- python将EXCEL数据导入数据库时日期型数据变成数字并加.0的问题一行代码解决方案方案
- tkFileDialog报错,模块未找到出错:没有名字叫做 tkFileDialog 的模块
- java.lang.IllegalArgumentException: KeyValue size too large
- 玩转mini2440开发板之【编译u-boot提示没有规则可以创建“XX.o”需要的目标】
- FFMPEG分析比较细的文章
- 每日一题(14)—— 交换a,b的值(不使用中间变量)
- 混凝土墙开洞_易县混凝土剪力墙切割常见问题
- 【Flink】Flink 自定义 trigger并且进行分析
- 使用MongoDb连接数据库服务器
- ubuntu上下左右变成BD
- Spring Boot Actuator 监控和管理应用程序
- SAP系统登录以及注册开发人员
- 李开复致中国家长的信:培养快乐感性的孩子
- 腾讯地图SDK公交路线规划Demo
- uni-app注册自动获取短信信息
- 人工智能(AI)和机器学习——未来的发展趋势
- Dev c++ 怎么设置背景色
- 机器学习小组知识点4:批量梯度下降法(BGD)
- 2022年9月电子学会Python等级考试试卷(二级)答案解析
热门文章
- 对10个元素进行快速排序,在最好情况下,元素间的比较次数为( )次。
- G6 图可视化引擎——快速上手
- BASIC-5	查找整数
- 【Qt】2D绘图之涂鸦板
- 【Linux】一步一步学Linux——arpd命令(184)
- 【Android】关于Android控件EditText的属性InputType的一些经验
- 两个sql交集_数据库(sql)关键字
- asp连接mysql字符串_asp连接数据库字符串
- fullcalendar5.X版本 显示自定义html内容
- 最新 Linux安装项目环境 mysql 完整教程 100%可行.附带所有教程