8 1 2定義記錄型別

2021-06-18 09:50:01 字數 2681 閱讀 9372

記錄只是乙個用來組織其他標量型別的容器,本身是沒有值的,它裡面的每乙個變數擁有自己的值。為了定義記錄型別,必須要定義乙個記錄所包含的標量型別變數的型別,然後宣告這種型別的變數,宣告記錄型別比標量型別多了乙個步驟。

type  type_name is record

( field_declaration

宣告記錄型別並賦初始值

為記錄賦值並讀取記錄內容

declare

type emp_rec is record(

empname   varchar2(12)   := '李斯特',

empno      number         not null default 7369,

hiredate  date           default sysdate,

sal       number(7,2)    

);--宣告emp_rec型別的變數

empinfo       emp_rec;

begin

--下面的語句為empinfo記錄賦值

empinfo.empname := '史密斯';

empinfo.empno   := 7010;

empinfo.hiredate:=to_date('1982-01-01','yyyy-mm-dd');

empinfo.sal     :=5000;

--下面的語句輸出empinfo記錄值

dbms_output.put_line('員工名稱:'||empinfo.empname);

dbms_output.put_line('員工編號:'||empinfo.empno);

end;

除了通過為單個記錄逐個地賦值之外,還可以為整個記錄進行一次性賦值,最常見的方式是將乙個記錄型別賦予

另乙個記錄型別的值,

declare

--定義記錄型別

type emp_rec is record(

empno  number,

ename  varchar2(20)

);--定義與emp_rec具有相同成員的記錄型別

type emp_rec_dept  is record(

empno number,

ename varchar2(20)

);--宣告記錄型別的變數

emp_info1     emp_rec;

emp_info2     emp_rec;

emp_info3     emp_rec_dept;

--定義乙個內嵌過程用來輸出記錄資訊

procedure printrec(empinfo emp_rec)

as begin

dbms_output.put_line('員工編號:'||empinfo.empno);

dbms_output.put_line('員工名稱:'||empinfo.ename);

end;

begin

emp_info1.empno := 7890;

emp_info1.ename := '張大千';

dbms_output.put_line('emp_info1的資訊如下:');

printrec(emp_info1);

emp_info2 := emp_info1;

dbms_output.put_line('emp_info2的資訊如下:');

printrec(emp_info2);

end%rowtype定義的記錄賦給標準記錄型別

declare

--定義乙個與dept表具有相同的記錄

type dept_rec is record(

deptno  number(10),

dname   varchar2(30),

loc     varchar2(30)

);--定義基於dept表的記錄型別

dep_rec_db  dept%rowtype;

dept_info   dept_rec;

begin

--使用select語句為記錄型別賦值

select *

into dept_rec_db

from dept

where deptno = 20;

--將%rowtype定義的記錄賦給標準記錄變數

dept_info := dept_rec_db;

end;

使用select語句為記錄賦值

declare

type emp_rec is record(

empno number(10),

ename varchar2(30),

job   varchar2(30)

);--宣告記錄型別的變數

emp_info  emp_rec;

begin

--為記錄型別賦值

select empno,

ename,

jobinto emp_info

from emp

where empno = 7369;

--輸出記錄型別的值

dbms_output.put_line('員工編號:'

|| emp_info.empno

|| chr(13)

|| '員工名稱:'

|| emp_info.ename

)end;

Python基礎學習記錄(8 12) 異常處理

異常 描述exception 代指所有型別的異常 attributeerror 引用屬性或賦值失敗時觸發 oserror 作業系統產生的異常 如開啟檔案失敗 indexerror 使用序列中不存在的索引 keyerroe 使用字典中不存在的關鍵字 nameerror 找不到名稱 變數 syntaxe...

8 12學習記錄構造方法 靜態方法 非靜態方法

1.構造方法 construct 只是魔術方法中最常用的一種方法,不用呼叫,只用例項化類就可以執行方法 在執行乙個類中的乙個非靜態方法時,首先會執行這個類中的建構函式。確切的說,是這樣 在例項化這個物件時,建構函式執行一次。class test public function sayhello te...

pl sql記錄型別

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