PLSQL有中常用的一个record类型,为什么要用record类型呢?我个人觉得因为可以存储多种类型吧,不过如果存储多种类型,我们似乎用游标也可以做到哦。O(∩_∩)O哈哈~
下面给一个demo供大家参考记录类型:
DECLARE
v_name VARCHAR2(20) := 'tom';
v_emp_id NUMBER := 100;
--定义记录类型
TYPE emp_record IS RECORD(
last_name Varchar2(20),
salary NUMBER,
hire_date DATE
);
--声明一个记录类型
rec_emp emp_record;
--声明一个列类型,当employees表的列类型变化时,它的类型也随之变化
v_salary employees.salary%TYPE;
--声明一个行类型
v_emp employees%ROWTYPE;
BEGIN
dbms_output.put_line(v_name);
--给记录类型赋值有两种:
-- := 和 select...into...
SELECT last_name,salary,hire_date INTO rec_emp
FROM employees
WHERE employee_id = v_emp_id;
--记录输出
dbms_output.put_line(rec_emp.last_name || ','||rec_emp.salary ||','||rec_emp.hire_date);
--给列类型赋值并输出
SELECT salary INTO v_salary
FROM employees WHERE employee_id = v_emp_id;
dbms_output.put_line(v_salary);
--给行类型赋值
SELECT * INTO v_emp FROM employees WHERE employee_id = v_emp_id;
dbms_output.put_line(v_emp.employee_id || '---'|| v_emp.last_name||'---'||v_emp.salary);
END;