Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


属性类型

📄字数 1.3K
👁️阅读量 加载中...

在 PL/SQL 中,属性类型(Attributes)或称引用类型(Reference)是用于引用其他对象特性的特殊语法,主要用于获取类型信息、集合状态或游标状态。属性类型包括类型引用属性(%TYPE、%ROWTYPE、% ROW TYPE),集合属性(COUNT、FIRST等方法参考集合类型的集合方法章节),游标属性等。

语法格式

参数说明

  • ColumnName:存在 TYPE 时,表示自定义类型的名称,可申明变量,无 TYPE 时,表示变量。
  • name_space:表对象或字段名,当使用 TYPE 时需指定字段名,表示该字段的数据类型;其余两种情况均指定表对象名,表示行类型。

提示

  • % ROWTYPE% ROW TYPE功能一样。
  • ROWTYPEROW TYPE功能一样。
  • 示例: 自定义方式实现
sql
SQL> CREATE TABLE employees_tab(id INT, first_name VARCHAR, last_name VARCHAR);

SQL> INSERT INTO employees_tab VALUES(1,'zhang','san')(2,'li','si')(3,'wang','wu'); 

-- 引用表的行数据
SQL> DECLARE 
        TYPE emp_type IS employees_tab % ROWTYPE;
        emp emp_type;
     BEGIN
        SELECT * INTO emp FROM employees_tab WHERE id = 1;
        SEND_MSG(emp.first_name || emp.last_name);
     END;   
     /

--输出
zhangsan

SQL> DECLARE 
        TYPE emp_type IS ROWTYPE OF employees_tab ;
        emp emp_type;
     BEGIN
        SELECT * INTO emp FROM employees_tab WHERE id = 1;
        SEND_MSG(emp.first_name || emp.last_name);
     END;   
     /

--输出
zhangsan


-- 引用表的列数据
SQL> DECLARE 
        TYPE emp_type IS employees_tab.first_name % TYPE;
        emp emp_type;
     BEGIN
        SELECT first_name INTO emp FROM employees_tab WHERE id = 1;
        SEND_MSG(emp);
     END;   
     / 

-- 输出
zhang

SQL> DECLARE 
        TYPE emp_type IS TYPE OF employees_tab.first_name;
        emp emp_type;
     BEGIN
        SELECT first_name INTO emp FROM employees_tab WHERE id = 1;
        SEND_MSG(emp);
     END;   
     / 

-- 输出
zhang
  • 示例: 无自定义类型方式
sql
-- 引用表的行数据
SQL> DECLARE 
        emp employees_tab % ROWTYPE;
     BEGIN
        SELECT * INTO emp FROM employees_tab WHERE id = 1;
        SEND_MSG(emp.first_name || emp.last_name);
     END;   
     /

-- 输出
zhangsan