码迷,mamicode.com
首页 > 数据库 > 详细

可变数组(PLSQL)

时间:2018-05-25 21:11:28      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:creat   tab   最大   info   个数   sysdate   insert   最大值   操作   

可变数组

可变数组与嵌套表相似,也是一种集合。一个可变数组是对象的一个集合,其中每个对象都具有相同的数据类型。可变数组的大小由创建时决定。在表中建立可变数组后,可变数组在主表中作为一个列对待。从概念上讲,可变数组是一个限制了操作个数的嵌套表。

可变数组,允许用户在表中存储重复的属性。例如:在嵌套表时使用过的部门表,一个项目可以有多个项目,用户使用可变数组这一类型可以在部门中设置多个项目的名字,如果限定每个部门的项目不超过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)

标签:creat   tab   最大   info   个数   sysdate   insert   最大值   操作   

原文地址:https://www.cnblogs.com/kawashibara/p/9090202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!