比较对象值

比较对象值
1可以将对象类型作为一个普通的数据类型使用。
2使用比较操作符时,需要提供类型的映射函数,类型函数必须返回和源列相同的数据类型,并且不同执行提交和回滚操作。
3比较操作符
=,<,>,<=,>=,in,like,between

测试数据

--创建对象类型头
create or replace  type class4 as object (
id number,
name varchar2 ( 20 ),
member  function get_name(no varchar2) return varchar2
) ;



--创建对象体
create or replace type body class4 as
 member  function get_name(no varchar2) return varchar2 as 
 name varchar2(20);
 begin
select sname into name from zhou.student where sno=no ;
 return name;
  end;
end;


--创建对象表
create table stu_class of class4;

--插入数据
insert into stu_class values(1101,'语文');
insert into stu_class values(1102,'数学');

举例
= ,< > ,in

select * from stu_class sc
where value(sc) =class4(1101,'语文');


select * from stu_class sc
where value(sc) <>class4(1101,'语文');


select * from stu_class sc
where value(sc) in (class4(1101,'语文'),class4(1102,'数学'));

这里写图片描述

>
select * from stu_class sc
where value(sc) > class4(1101,’语文’);

这里写图片描述

错误原因:class4的函数定义没有使用map或order

修改对象类型(先删除使用该对象类型的表)

create or replace  type class4 as object (
id number,
name varchar2 ( 20 ),
map member  function getString  return varchar2--使用map
) ;




create or replace type body class4 as
 map  member function getString  return varchar2 as --使用map
 name varchar2(20);
 begin
 return id||name;
  end;
end;

这里写图片描述

转载于:https://www.cnblogs.com/feiZhou/p/9344267.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值