pl/sql record 詳解

達芬奇的夢發表於2017-05-27

PL/SQL記錄(record)相當於高階語言中的結構,它有益於處理單行資料。例如要檢索僱員的姓名、工資和補助時,如果使用標量變數接收資料,需要定義三個變數。為了簡化單行多列資料的處理,可以使用記錄。

1、定義Record

在定義時,可以是開發人與自定義記錄型別和記錄變數,也可以使用%rowtype直接定義記錄變數。

例如:自定義Record

DECLARE

TYPE emp_record_type IS RECORD(

           name    emp.ename%type,

           salary   emp.sal%type,

           dno        emp.deptno%type

);

emp_record emp_record_type ;

emp_record是基於記錄型別emp_record_type所定義的記錄變數。記錄變數名:emp_record

2、使用%rowtype屬性定義記錄變數

%rowtype可以基於表或檢視定義記錄變數。當使用該屬性定義記錄變數時,記錄成員的名稱和型別與表或檢視的列的名稱和型別完全相同。

語法:identifier table_name%rowtype;

當使用%rowtype屬性定義記錄變數時,記錄成員的個數、名稱、型別與表或檢視的列的個數、名稱、型別相同。

例如:

emp_record   emp%rowtype

記錄變數emp_record的成員名為表emp的列名(empno、ename..)

使用示例:

set serveroutput on

DECLARE

    TYPE emp_record IS RECORD(

            name   emp.ename%type,

            salary   emp.sal%type,

           dno     emp.deptno%type

);

emp_record emp_record_type;

BEGIN

select ename,sal,deptno INTO emp_record

FROM emp

WHERE empno=&no;

dbms_output.put_line(emp_record.name);

END;

當引用記錄變數成員時,必須在成員名之前加上記錄變數名作為字首。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31444259/viewspace-2139969/,如需轉載,請註明出處,否則將追究法律責任。

相關文章