Oracle中定义Type的概念及其用法(oracle定义type)
Oracle数据库中定义Type概念及其用法
Oracle数据库支持用户定义类型(Type),比如用户自定义的对象类型,为使用数据库设计高效的抽象类型提供了一种便捷的方法。Type的定义可以是内部的和外部的,外部的Type称之为全局类型(GLOBAL type),内部的称之为局部类型(LOCAL type)。
Oracle数据库定义Type用法包括:1. 创建一个用户自定义的对象类型,并将其成分的信息和类型指定为用户自定义的一组属性,这组属性继承于用户自定义的类别;2. Queries访问这些相关的信息,操作类型数据会隐式解析成一组属性。
下面是一个用户自定义对象类型Rectangle的例子,它拥有属性width和height,定义了一个GLOBAL type:
create or replace type Rectangle as object( width number,
height number );
/
我们可以利用这个GLOBAL type来创建一个table:
create table RECTANGLE_TABLE (
id number primary key,
rectangle Rectangle
);
我们也可以定义一个内部的LOCAL type,它也拥有属性width和height。
declare
type CorType as object(
width number,
height number
);
Begin
null;
End;
/
LOCAL type弹出过程中,其类型定义不会持久化,只能在该会话上有效。
定义完Type之后,我们可以在SQL语句中灵活的使用它们,比如:
insert into RECTANGLE_TABLE
values (1, CorType(2, 3));
此时,我们向RECTANGLE_TABLE中插入了width为2,height为3的一个CorType数据,我们也可以用下面的语句查询出其width、height:
select id, rectangle.width, rectangle.height
from RECTANGLE_TABLE
Type的定义和使用能够使我们实现更自由灵活的抽象数据结构定义,从而更高效的管理数据库,提高工作效率。