分享
 
 
 

Oracle初学者笔记(八)--Oracle中的对象(可变数组)

王朝oracle·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

面向对象数据库中存储的是对象,对象有自己的行为和属性;

行为体现为类型的函数或者过程;属性体现为字段;

对象表确实有优势吗?

基于抽象类型创建关系表:和其他表的创建一样;

基于抽象类型创建对象表:create table 对象表名 of 抽象数据类型;

抽象类型可以复用:也就是说一个抽象类型中可以包含另一个抽象类型做为一个字段;

构造函数是默认创造的,参数包括类型的字段;

如果要插入数据到对象表,有两种方式:

一种就是insert into tablename values(字段1,字段2,....);

另一种就是我们如果想直接用构造函数构造一个大字段直接插入,

这时候不需要values,但必须用slect:

insert into tablename select 构造函数(字段1,字段...) from xxx;

创建带方法的类型:

首先说方法的定义:如果有返回值,用member function...

没有返回值,member procedure...

****以后再说;

可变数组

声明一下Oralce的oop中使用下列的对象类型:

·抽象数据类型;

·可变数组;

·嵌套表;

·对象表;

·对象视图;

可变数组会根据存储数据的大小来真正存储数据而不是占用固定的空间,这类似

Java中的ArraryList类;

关系型理论中不允许一个表中的一个记录中存储其他表记录,

而Oracle中是支持的;这不是违反了数据的原子性原则吗?

但是这样有好处:

在用户查询的时候比两个表进行关联查询效率高;

所以说可变数组也可以做为一条记录的一个字段被存储在一个表中,

当然这是违反关系数据理论的;

创建可变数组的例子:

create or replace type mingxitype as object

(

goodsid varchar(15),

incount int,

providerid varchar(15)

);

/

create or replace type arrmingxitype as varray(100) of mingxitype;

/

create table instock

(

orderid int primary key,

indate date,

mingxi arrmingxitype

)

/

insert into instock

values(1001,to_date('2005-10-19','yyyy-mm-dd'),

arrmingxitype(mingxitype('101',10,'so1'),

mingxitype('193',30,'j02'),

mingxitype('104',32,'i92')

)

)

/

//table函数可以把可变数组转换为关系表的形式显示出来;

select * from table(select s.mingxi from instock s where orderid=1001)

GOODSID INCOUNT PROVIDERID

--------------- ---------- ---------------

101 10 so1

193 30 j02

104 32 i92

可变数组的元素不能单独改,必须全部改;

所以可变数组适合的场合是:

用户不会修改的数据,历史性的数据就适合用可变数组;

删除数据是通用的;

//可变数组的基类型是用户定义的;所以这个基类型也可以是一般数据类型,比如int;

create or replace type arrayint as varray(30) of int;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有