Oracle 自定義類型的種類
記錄數據類型(Record)和記錄表類型(Table),其中記錄數據類型Record存儲是一條記錄,記錄表類型Table用來存儲多條記錄。如果記錄數據類型Record是一維數組的話,記錄表類型Table就是二維數組。
自定義類型有兩種寫法:TYPE……IS和CREATE TYPE ……,兩者區別在於:前者一般在存儲過程和函數中定義,其作用域是所在過程或函數,而后者聲明對象類型,對象類型則是作為一個數據庫對象(像表、索引、視圖、觸發器一樣,是一個數據庫對象),可以過程或函數中使用,還可以在定義表時,作為字段的類型。
一、TYPE type_name IS RECORD 定義記錄數據類型
定義語法:
TYPE type_name IS RECORD (
字段名1 數據庫變量類型1,
字段名2 數據庫變量類型2,
...
字段名n 數據庫變量類型n
);
其中type_name:自定義類型的名稱
應用例子
DECLARE TYPE type_Employee IS RECORD( name VARCHAR2(100), age NUMBER(3), wage NUMBER(7,2) ); v_employs type_Employee; v_name VARCHAR2(100); v_age NUMBER(3); v_wage NUMBER(7,2); i integer; BEGIN select name, age, wage into v_employs from Employees where EmployeesId = '750adfd0-f8cd-4a64-a2f8-736f8802ec87'; v_name := v_employs.name; v_age := v_employs.age; v_wage := v_employs.wage; dbms_output.put_line(v_name); dbms_output.put_line(v_wage); dbms_output.put_line(v_age); END;