oracle 自定义类型的 type body包含什么?举例说明
时间: 2023-11-18 14:04:50 浏览: 190
Oracle 自定义类型(User-Defined Types,简称 UDT)的 type body 包含 UDT 的具体实现逻辑,包括类型的成员属性、方法、函数等。下面是一个例子:
首先,我们需要创建一个对象类型:
```
CREATE OR REPLACE TYPE person_type AS OBJECT (
id NUMBER,
name VARCHAR2(50),
age NUMBER
);
```
接着,我们可以创建一个对象类型的方法和函数:
```
CREATE OR REPLACE TYPE BODY person_type AS
-- 方法:设置 ID
MEMBER PROCEDURE set_id(p_id IN NUMBER) IS
BEGIN
SELF.id := p_id;
END;
-- 方法:设置姓名
MEMBER PROCEDURE set_name(p_name IN VARCHAR2) IS
BEGIN
SELF.name := p_name;
END;
-- 方法:设置年龄
MEMBER PROCEDURE set_age(p_age IN NUMBER) IS
BEGIN
SELF.age := p_age;
END;
-- 函数:获取 ID
MEMBER FUNCTION get_id RETURN NUMBER IS
BEGIN
RETURN SELF.id;
END;
-- 函数:获取姓名
MEMBER FUNCTION get_name RETURN VARCHAR2 IS
BEGIN
RETURN SELF.name;
END;
-- 函数:获取年龄
MEMBER FUNCTION get_age RETURN NUMBER IS
BEGIN
RETURN SELF.age;
END;
END;
```
通过这个例子,我们可以看到 type body 中包含了对象类型的具体实现逻辑,包括成员属性、方法和函数等。
阅读全文