Oracle中对象表,ref及deref 对象表的使用
来源:互联网 发布:程序员宣传片百度网盘 编辑:程序博客网 时间:2024/06/06 03:16
ORACLE在关系数据库外,融入了面向对象的元素,比如可以创建type,type之间可以继承,type可以带构造函数、排序函数、各种各样的成员函数、存储过程等等。
对象表是指该表的一行就是一个对象,有一个OID(object ID),对象表之间没有主外键关联的概念,为了体现这层关系,oracle中用了ref对象来实现。
下面例子,创建一个地址类型,一个人员类型,人员有地址属性,所以在人员类型中设置一个ref address来确定指向他所在地址的指针。
--创建地址类型
create type address as object(
street varchar2(35),
city varchar2(15),
state char(2),
zip_code integer
);
create table addresses of address; --创建地址对象表
--创建人员类型
create type person as object(
first_name varchar2(15),
last_name varchar2(15),
birthday date,
home_address ref address, --指向对应的地址,该地址应该在另外一个对象表中的一行
phone_number varchar2(15)
);
CREATE TABLE persons of person; --创建人员对象表
--插入一个地址
insert into addresses values(address('nanhai','shenzhen','gd','518054'));
insert into addresses values(address('shennan','shenzhen','gd','518057'));
--插入一个人员,注意这里的home_address部分是如何插入一个ref address的。
insert into persons values(person('shitou','haha',to_date('1982-07-05','yyyy-mm-dd'),
(select ref(a) from addresses a where street='nanhai'),
'1355555555'));
--也可以用下面的过程来插入一个人员记录
declare
addref ref address ;
begin
select ref(a) into addref from addresses a where street='nanhai';
insert into persons
values (person('shitou','haha',to_date('1982-07-05','yyyy-mm-dd'),
addref,'1355555555'));
commit;
end;
--查询某人的地址信息
select first_name,deref(home_address) from persons;
--修改地址
update persons set home_address=(select ref(a) from addresses a where street='shennan');
--删除某个人员
delete from persons where first_name='shitou';
--删除某个地址的相关人员记录
delete from persons where home_address=(select ref(a) from addresses a where street='nanhai');
- oracle中对象表,ref及deref的一个实例。
- oracle中对象表,ref及deref的一个实例。
- oracle中对象表,ref及deref的一个实例。
- oracle中对象表,ref及deref 对象表的使用
- Oracle中对象表,ref及deref 对象表的使用
- ORACLE 对象的使用
- 如何查看oracle的scott用户使用表空间及对象情况
- oracle使用exp导出dmp文件后表对象缺失问题的原因及解决办法
- Oracle 中Java 对象与PL/SQL类型的映射及使用
- oracle 存储过程及REF CURSOR的使用
- oracle 存储过程及REF CURSOR的使用
- 在.Net中使用Oracle的表类型和对象类型 - 深蓝居 - 博客园
- 在.Net中使用Oracle的表类型和对象类型
- 关于oracle中动态游标的使用例子ref cursor
- ORACLE 查询表空间中对象的大小
- oracle中常用的对象
- Oracle大对象的使用
- Oracle大对象的使用
- sql
- Flash Debug Player 输出日志
- jquery的cookie值
- MOSS2010单点登录(2)
- log文件的读并写入.text文件
- Oracle中对象表,ref及deref 对象表的使用
- 编译MSM7627a错误
- 实习两个月的总结
- 以太网供电(POE) 有源以太网 802.1af 802.1at
- 《Maven权威指南》学习笔记(一)
- Maven权威指南》学习笔记(二)
- HTTP协议详解
- qemu Makefile 分析
- 《Maven权威指南》学习笔记(三)