可变数组(PLSQL)
可变数组
可变数组与嵌套表相似,也是一种集合。一个可变数组是对象的一个集合,其中每个对象都具有相同的数据类型。可变数组的大小由创建时决定。在表中建立可变数组后,可变数组在主表中作为一个列对待。从概念上讲,可变数组是一个限制了操作个数的嵌套表。
可变数组,允许用户在表中存储重复的属性。例如:在嵌套表时使用过的部门表,一个项目可以有多个项目,用户使用可变数组这一类型可以在部门中设置多个项目的名字,如果限定每个部门的项目不超过3个,则可以建立一个10个数据项为限的可变数组。之后就可以处理此可变数组,可以查询每一个部门的所有项目信息
可变数组--范例
创建项目数组
Create or replace type kingsql_varray as varray(3) of varchar2(50);
定义部门表,使用可变数组
Drop table department purge
Create table department3(
Did number,
Deptname varchar(30) not null,
Projects kingsql_varray);
定义复合类型的可变数组
创建一个表示项目类型的对象
Create or replace type project_type as object(
Projectid number,
Projectname varchar(50),
Projectfunds number,
Pubdate date);
定义新的数组类型
CREATE OR REPLACE TYPE project_varray AS VARRAY(3) OF project_type ;
定义数据表,使用可变数组
DROP TABLE department PURGE ;
CREATE TABLE department (
did NUMBER ,
deptname VARCHAR(50) NOT NULL ,
projects project_varray ,
CONSTRAINT pk_did PRIMARY KEY (did)
) ;
Insert into department
Values(1,’hehe’,project_varray(project_type(1,’hehe’,1,sysdate)));
Insert into department
Values(2,’haha’,project_varray(project_type(2,’haha’,2,sysdate),project_type(22,’haha’,22,sysdate),project_type(222,’haha’,222,sysdate)));
Insert into department
Values(3,’gaga’,project_varray(project_type(3,’gaga’,3,sysdate),project_type(33,’gaga’,33,sysdate),project_type(333,’gaga’,333,sysdate),project_type(3333,’gaga’,3333,sysdate)));

会报错,超过可变数组最大值限制
可变数组--范例
在PL/SQL中使用可变数组
Declare
Type project_varray is varray(3) of varchar(50);
Projects project_varray:=project_varray(null,null,null);
Begin
Projects(1):=’OCP’;
Projects(2):=’OCM’;
Projects(3):=’MYSQL’;
For x in projects.first .. projects.last loop
Dbms_output.put_line(projects(x));
End loop;
End;
/
可变数组(PLSQL)的更多相关文章
- 可变数组NSMutableArray
//创建一个空的可变数组 NSMutableArray *array = [NSMutableArray array]; //向数组里面添加对象 [array addObject:@"< ...
- Objective - C NSArray不可变数组和NSMutableArray可变数组
OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见 ...
- NSArray与NSMutableArray 数组与可变数组
1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...
- objective-c可变数组
1 #pragma mark ---------------可变数组----------------- 2 // 可以在数组里面进行增删改的操作 3 // 4 // ...
- iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)
// // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...
- 【转】不可变数组NSArray与可变数组NSMutableArray
原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; ...
- Swift不可变数组
Objective-C编写了2个不同的类来区分不可变数组(NSArray)和可变数组(NSMutableArray): Swift通过使用常量和变量来区分不可变数组和可变数组. 只要将数组定义为常量, ...
- OC4_可变数组
// // main.m // OC4_可变数组 // // Created by zhangxueming on 15/6/11. // Copyright (c) 2015年 zhangxuemi ...
- IOS 中runtime 不可变数组__NSArray0 和__NSArrayI
IOS 中runtime 不可变数组__NSArray0 和__NSArrayI 大家可能都遇到过项目中不可变数组避免数组越界的处理:runtime,然而有时候并不能解决所有的问题,因为类簇不一样 # ...
随机推荐
- django 拷贝一个 model 实例
今天做一个拷贝功能,把某个 obj 拷贝并修改部分数据,提交表单后保存为一个新实例.结果google 出来的结果不对,都是相互copy 的代码,大概如下: obj = MyModel.objects. ...
- 【iCore1S 双核心板_ARM】例程五:IWDG看门狗实验——复位ARM
实验原理: STM32内部包含独立看门狗,通过看门狗可以监控程序运行,程序错误 时,未在规定时间喂狗,自动复位ARM.本实验通过按键按下,停止喂狗, 制造程序运行 错误,从而产生复位 . 实验现象: ...
- 批量 kill mysql 线程
时常有一些烂sql跑在数据库里,我们要进行kill,避免影响拖垮数据库. mysql> show processlist; +----+------+---------------------+ ...
- RR算法 调度
RR算法是使用非常广泛的一种调度算法. 首先将所有就绪的队列按FCFS策略排成一个就绪队列,然后系统设置一定的时间片,每次给队首作业分配时间片.如果此作业运行结束,即使时间片没用完,立刻从队列中去除此 ...
- Java——安全地停止线程
错误用例 下面用例中,一个正在sleep的线程,在调用interrupt后,wait方法检查到isInterrupted()为true,抛出异常, 而catch到异常后没有处理.一个抛出了Interr ...
- JConsole & JVisualVM远程监视Websphere服务器JVM的配置方法
原文链接:http://xjsunjie.blog.51cto.com/999372/1331880/ jconsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请.释放等动作, ...
- MySql安全模式的关闭和开启
#MySql关闭安全模式 ; commit; #MySql开启安全模式 ; commit;
- 【GIS】Vue修改图层透明度
1.添加透明度控制条 <input id="slider" type="range" min="0" max="1" ...
- 构建工具:grunt、Glup、webpack
相关代码已上传至github 怎么是项目构建? 编译项目中的js, sass, less: 合并js/css等资源文件: 压缩js/css/html等资源文件: JS语法的检查. 构建工具的作用? 简 ...
- traff.sh
#!/bin/bash #网络监控 while [ "1" ] do eth=$1 RXpre=$(cat /proc/net/dev | grep $eth | tr : &qu ...