pl sql記錄型別

2021-05-02 03:39:22 字數 2478 閱讀 3289

1.定義plsql記錄

可以自定義記錄型別和記錄變數。

也可以使用%rowtype屬性定義記錄變數。

自定義plsql記錄

需要分別定義記錄型別和記錄變數。

例如:declare

type emp_record_type is record(       //定義記錄型別

name emp.ename%type,            //記錄成員

sal emp.sal%type,

job emp.job%type

);emp_record emp_record_type;               //宣告emp_record記錄變數

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

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

例如:declare

emp_record emp%rowtype;

2.使用plsql記錄。

在select into語句中使用plsql記錄。如果選擇列表包含的多個列和表示式,並且使用標量接收資料,就需要定義多個標量,如果使用plsql記錄接收資料就只需要定義乙個記錄變數即可,從而簡化了資料的處理。

在select..into語句中使用plsql記錄時,既可以使用記錄變數,也可以使用記錄成員。

在select..into中使用記錄變數。

例如:declare

type emp_record_type is record(

v_no emp.empno%type,

v_name emp.ename%type,

v_sal emp.sal%type

);emp_record emp_record_type;

begin

select empno,ename,sal into emp_record from emp where empno=6044;

dbms_output.put_line(emp_record.v_no);

dbms_output.put_line(emp_record.v_name);

dbms_output.put_line(emp_record.v_sal);

end;

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

在select..into中使用記錄成員。

例如:declare

type emp_record_type is record(

v_no emp.empno%type,

v_name emp.ename%type,

v_sal emp.sal%type

);emp_record emp_record_type;

begin

select empno,sal,ename into emp_record.v_no,emp_record.v_sal,emp_record.v_name

from emp where empno=6044;

dbms_output.put_line(emp_record.v_no);

dbms_output.put_line(emp_record.v_name);

dbms_output.put_line(emp_record.v_sal);

end;

注意:選擇列表項和記錄成員的匹配問題。

在insert語句中使用plsql記錄(使用記錄成員)

例如:declare

temp_record temp%rowtype;

begin

temp_record.customer_name:='張三';

temp_record.city:='北京';

insert into temp values(temp_record.customer_name,temp_record.city);

end;

在updat語句中使用plsql記錄(使用記錄成員)

例如:declare

temp_record temp%rowtype;

begin

temp_record.customer_name:='王五';

temp_record.city:='上海';

update temp set temp.customer_name=temp_record.customer_name,

city=temp_record.city

where customer_name='張三';

end;

在delete語句中使用plsql記錄

例如:declare

temp_record temp%rowtype;

begin

temp_record.customer_name:='王五';

delete from temp where temp.customer_name=temp_record.customer_name;

end;

plsql記錄型別

1 基於表的記錄 2 基於游標的記錄 3 使用者自定義的記錄 使用 rowtype屬性,可以建立基於表和基於游標的記錄.plsql 提供使用者定義的記錄型別,使用它可以完全控制記錄結構,建立的通用語法 b type type name is record field1 datatype not nu...

pl sql記錄型別

1.定義plsql記錄 可以自定義記錄型別和記錄變數。也可以使用 rowtype屬性定義記錄變數。自定義plsql記錄 需要分別定義記錄型別和記錄變數。例如 declare type emp record type is record 定義記錄型別 name emp.ename type,記錄成員 ...

PL SQL 日期型別

在pl sql中共有三個日期型別 today date date sysdate today timestamp timestamp systimestamp today timetzone timestamp with time zone systimestamp today local time...