oracle 自定義型別

2021-09-24 04:24:50 字數 1560 閱讀 6809

例1: 批量 查詢部門號為 "10" 號的並把它們列印出來 .

declare

type emp_table_type is table of my_emp%rowtype index by binary_integer;

v_emp_table emp_table_type;

begin

select * bulk collect into v_emp_table from my_emp where deptno=&deptno;

for i in 1..v_emp_table.count loop

dbms_output.put_line('employee_info:'||v_emp_table(i).ename||

','||v_emp_table(i).job||

','||v_emp_table(i).hiredate);

end loop;

end;

說明部分:

1. declare 說明以下你要宣告的部分

2. type 宣告是型別 emp_table_typ e 型別的名字

3. is table of 指定是乙個集合的表的陣列型別, 簡單的來說就是乙個可以儲存一列多行的資料型別 , my_emp 指出在哪個表上( 存在的表 ) %rowtype指在表上的行的資料型別.

4. index by binary_integer 指索引組織型別

5. v_emp_table 定義乙個變數來儲存集合資料型別

6. bulk collect into 指是乙個成批聚合型別, 簡單的來說 , 它可以儲存乙個多行多列儲存型別 ,into 後面指定從**來 ,

7. v_emp_table.count 用來 v_emp_table 裡面的數量

8. (i)表示下標號

by pls_integer你可以用類似 string_index_by_number(1),也就用數字下標來訪問集合中的元素,例子:

declare

type number_index_by_string is table of number index by varchar2(30);

num_collection string_index_by_number;

begin

num_collection(1) := '北京';

dbms_output.put_line(num_collection(1)); --輸出為北京

end;

by varchar2(30) 你可以用類似 number_index_by_string ('name'),也就用數字下標來訪問集合中的元素.

例子: declare

type number_index_by_string is table of number index by varchar2(30);

num_collection number_index_by_string;

begin

num_collection('北京') := 1;

dbms_output.put_line(num_collection('北京')); --輸出為1

end;

oracle自定義型別

1 定義乙個型別 sql create or replace type propertyvalue as object number value number,string value varchar2 2000 date value date,member function getnumberva...

oracle 自定義型別

而如果沒有這句話 index by binary integer 那就得要顯示對初始化,且每插入乙個元素到numbers型別的table中時,都需要先extend.示例 沒加 index by binary integer 時 declare type my number arr is table ...

自定義型別

typedef型別 typedef 已有型別 新建型別 示例 typedef double area,volume typedef int number number i1 area a enum enum 列舉型別名 enum week 預設sun 0,可以比較 如果修改必須形如enum week...