oracle的参照变量

 
Q4 ,oracle 的参照变量:oracle中的参照变量有两种,ref cursor和ref obj_type。是指用于存放数值指针的变量。通过使用参照变量,可以使得应用程序共享相同对象,从而降低占用空间。
Ref cursor 使用游标变量时不需要在定义时就指定相应的select语句,从而实现动态的游标操作。
Declare
 Type c1_refcursor is ref cursor;
 C1refcursor c1_refcursor;
 Begin
    Open c1refcursor for select…
 End;
Ref obj_type 譬如在处理家庭成员的过程中,由于同一个家庭的所有成员的家庭住址属性都相同,为了避免数据冗余,传统的处理方式是定义家庭住址表(ID varchar2(10),addr varchar2(100));这样可以有效降低冗余的数量,譬如使用ID代替addr,将冗余字节数从100降低到了10,但是这样依然存在冗余的数据。而采用参照变量ref进行处理则可以完全避免冗余,处理方式为首先定义地址对象home_type和存储地址的表homes,然后在定义人员时将地址字段定义为ref home_type就建立了一个指向对应地址的指针。
Create or replace type home_type as object(addr varchar2(1000),tel varchar2(20)); --定义地址对象
Create table homes of home_type; --定义家庭地址表
Insert into homes values(‘asdfasdf’,’15837033970’); --插入家庭地址数据
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 = ‘15837033970’; --插入人员数据
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值