使用对像类型
来源:互联网 发布:单片机编程软件中文版 编辑:程序博客网 时间:2024/06/03 02:18
对象函数
对象函数用于操纵REF对象。REF实际是指向对象实例的指针,也称为参照对象。
Deref (expr):用于返回参照对象引用的对象实例。
Make_Ref(object_table | object_view,key)用于基于对象视图或者表的行数据生成REF。
Ref (expr):用于返回对象行所对应的REF值。
Reftohex(expr)用于将REF值转变为十六进制字符串。
Value (expr):用于返回行对象所对应的对象实例数据。
定义对像类型方法
构造方法 从9I后除了使用默认的构造方法外,还可以自定义构造方法 Contructor Function (用9.0.0 不支持自定义构造)
Member方法 可以使用内置参数Self 只能由对象实例调用
Static方法 只能由对象类型调用
Map 方法 按规则排序对象实例的数据。对象类型最多能有一个MAP方法。
Order 方法 用于比较对象实例。不能与Map方法同时定义。最多能有一个。
eg:
定义:
create or replace type employee_type as object(eno number(6),name varchar2(10),salary number(6,2),
job varchar2(10),dno number(2),
constructor function employee_type(eno number,name varchar2) return self as result,
member procedure change_sal(new_sal number),static function get_time return varchar2,
map member function sal_sort return number
);
/
create or replace type body employee_type as
constructor function employee_type(eno number,name varchar2) return self as result
is
begin
self.eno:=eno;
self.name:=name;
return;
end;
member procedure change_sal(new_sal number) as
begin
salary:=new_sal;
end;
static function get_time return varchar2 as
begin
return to_char(sysdate,'YYYY-MM-DD HH24:MI:SS');
end;
map member function sal_sort return number as
begin
return salary;
end;
end;
/
调用
declare type emp_table_type is table of employee_type index by binary_integer;
emp_table emp_table_type;
index_max int; index_min int;
temp_max int:=0; temp_min int :=999999;
begin
emp_table(1) := employee_type(1,'scott',3500,'clerk',10);
emp_table(2) := employee_type(2,'SMITH',3500,'manger',10);
emp_table(3) := employee_type(3,'BLAKE',3500,'clerk',10);
emp_table(1).change_sal(&sal1);
emp_table(2).change_sal(&sal2);
emp_table(3).change_sal(&sal3);
for i in 1..emp_table.count loop
dbms_output.put_line('姓名:'|| emp_table(i).name ||' 工资:'|| emp_table(i).salary);
if emp_table(i).sal_sort>temp_max then
temp_max:=emp_table(i).sal_sort; index_max:=i;
end if;
if emp_table(i).sal_sort< temp_min then
temp_min:=emp_table(i).sal_sort; index_min:=i;
end if;
end loop;
dbms_output.put_line('工资最高的员工:'|| emp_table(index_max).name);
dbms_output.put_line('工资最低的员工:'|| emp_table(index_min).name);
end;
/
- 使用对像类型
- Java对像类型举例说明
- Oracle对像和类型
- dom对象类型和js对像的类型
- OpenCV中将MAT类型的对象作为InputArray类型的对像传递给函数
- 使用java 反射,对类中成员变量赋值.将Json对像转为Java对像
- Asp.net中对像使用继承的方法(:)
- [读书摘记]调用另一个Activity--Intent对像的使用
- 检测你的数据库对像在哪些地方使用过
- 多线程使用中:对像被覆盖的BUG
- 对像集合使用过程中的一些总结
- 对像序列化为 json 对像
- 使用stringstream对string进行类型转换
- Java对像流- -
- 拖动对像
- TList 对像说明
- 对像相同赋值
- TList 对像说明
- xml
- poedit 图文教程 转载
- 各大公司提供的地图服务
- 今日读网精华链接@20091015
- 作为学科的计算科学(上、中、下)
- 使用对像类型
- 面向对象设计原则(Object-Oriented Principle)
- [水晶报表]服务器端设置报表打印格式
- 10.15--关于产品文档中用表格来描述操作
- 【转载】CFC 心得
- linux C程序如何确定一个域名所对应的网站是否可以打开!
- 有趣的数学题,回家解决
- header('Content-Type:..')
- 如何学习ASP.net技术