復合型別資料

2021-04-20 07:26:51 字數 2608 閱讀 7530

(1)記錄型別

--自定義record型別

declare

type example_record_type is record(

name emp.ename%type,

salary emp.salary%type,

dno emp.deptno%type        

);      

--宣告record型別變數

example_record example_record_type; 

begin

--pl/sql語句

end;  

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

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

列的名稱和型別完全相同。

--identifier table_name%rowtype;

--identifier view_name%rowtype;   

(2)pl/sql表

索引表的小表可以為負值,而且其元素個數沒有限制。

--語法如下:

type type_name is table of elment_type [not null] index by key_type;

key_type用於指定索引表元素下標的資料型別(binary_integer,pls_integer,,varchar2);

identifier type_name;     

--例:

set serveroutput on

declare

type ename_table_type is table of emp.ename%type index by binary_integer;

ename_table ename_table_type;

begin

select ename into ename_table(-1) from emp

where empno = &no;

dbms_output.put_line(ename_table(-1)); 

end;

/  (3)巢狀表

巢狀表也是一種用於處理pl/sql陣列的資料型別。巢狀表的元素下標從1開始,並且元素個數沒有限制。高階語言的陣列元素   值是順序的,而巢狀表元素的陣列元素值可以是稀疏的。

--語法

type type_name is table of element_type;

identifier type_name;

--例:

--在pl/sql塊中使用巢狀表

declare

type ename_table_type is table of emp.ename%type;

ename_table ename_table_type;

begin

ename_table := ename_table_type("mary", "mary", "mary");

select ename into ename_table(2) from emp 

where empno = &no;

dbms_output.put_line(ename_table(2));

end; /

--在表列中使用巢狀表

create type phone_type is table of varchar2(20); /

create table employee(

id number(4),

name varchar2(10),

sal number(6,2),

phone phone_type

)nester table phone store as phone_table;

(4)變長陣列(varray)

其元素下標從1開始,並且元素的最大個數有限制。

--語法

type type_name is varray(size_limit) of element_type [not null];

identifier type_name;

--例:

--在pl/sql塊中使用變長陣列

declare

type ename_table_type is varray(20) of emp.ename%type;

ename_table ename_table_type:=ename_table_type("mary", "mary", "mary");;

begin

select ename into ename_table(1) from emp 

where empno = &no;

dbms_output.put_line(ename_table(1));

end; /

--在表列中使用變長陣列

create type phone_type is varray(20) of varchar2(20); /

create table employee(

id number(4),

name varchar2(10),

sal number(6,2),

phone phone_type

);

python復合型別 python復合型別

鏈結 list python的列表的特點 可以隨時新增和刪除元素 可以做的操作有 切片,新增,刪除,查詢,修改,排序 列表元素可以是不同型別,在型別不同的情況下就無法排序 列表是有序的 定義小馬列表 li twilight pinkiepie rainbow dash 插入 insert self ...

復合型別 Rust常用的復合資料型別

1.陣列建立 一段連續空間中,儲存了同型別的資料。fn main arr1 0 println arr2 0 arr2 0 複習一下 因為拷貝時是複製語義,因此arr2還在 執行結果 arr1 0 1 arr2 0 1 為啥這個陣列是複製語義,如果還不明白這個問題,需要回上一期看一下哈。2.一些陣列...

復合資料型別

復合資料型別 作用 封裝資料 多種不同型別資料存放在一起 應存放在全域性,在訪問結構體中的變數時,應用stu.id stu.name 初始化的方式 在對陣列進行初始化時 strcpy stu.name,zhangsan 在對指標進行初始化時 char name 對name進行初始化 stu.name...