Create or replace type home_type as object(addr varchar2(1000),tel varchar2(20)); --定义地址对象
Create table homes of home_type; --定义家庭地址表
INSERT INTO homes values('AAAAA','11111111'); --插入家庭地址数据
INSERT INTO homes values('BBBBB','22222222'); --插入家庭地址数据 Create table person(id number, name varchar2(10), addr ref home_type); --定义人员表 Insert into person Select 1,'maming',ref(p) from homes p where p. tel = '11111111'
这样查询和普通的两个表联合查询哪位更好一些。
Create table homes of home_type; --定义家庭地址表
INSERT INTO homes values('AAAAA','11111111'); --插入家庭地址数据
INSERT INTO homes values('BBBBB','22222222'); --插入家庭地址数据 Create table person(id number, name varchar2(10), addr ref home_type); --定义人员表 Insert into person Select 1,'maming',ref(p) from homes p where p. tel = '11111111'
这样查询和普通的两个表联合查询哪位更好一些。
解决方案 »
- oracle 怎么删除非空约束
- oracle 如何从某种特定格式的数据找到这种数据存在哪个表中??
- 请大家帮忙 ,小弟初学,要写个触发器
- 用sqlldr导入txt数据,文本字段中含有回车,如何处理
- shared memory realm does not exist
- 怎么在存储过程里面调用链路的存储过程
- 如何使用SQL Loader导入日期类型
- oracle9i连接到oracle8i问题
- 不小心删除了表空间(物理上),现在数据库启动不起来,应该怎么恢复啊
- 安装oracle的时候提示磁盘空间不够,可磁盘是足够的啊,怎么解决?
- Enterprise Manager中,如何使用OS用户
- 请教SQL查询语句
REF OBJ_TYPE使用的目的是为了避免存储数据冗余,降低数据量
和查询没什么关系
性能方面的话,应该咩有差异,我想对于Oracle的底层实现上普通表和对象表最后都应该回归到相同的策略上,仅是自己猜测而已,我也很少看到客户用这样的方式的。所以没有深入的研究过。他们的不同主要在使用的方式上,对象表是一种把表看作一个实体,从而进行相关的查询和dml操作的表体。而且对象表类似于我们程序里的oo的概念,有可以继承和多态。提供我们另一种特殊的表设计的方式。
这个要看最终的执行计划,
我感觉它们之间应该是差不多.
REF OBJ_TYPE只是更类似面向对象.