Oracle plsql復合資料型別

2021-09-08 00:11:54 字數 2517 閱讀 8511

•復合組合變數也叫做組合變數,在復合變數中包括多個內部元件,每個元件都可以單獨存放值,

因此乙個復合變數可以存放多個值。 

•復合變數型別不是資料庫中已經存在的資料型別,因此復合變數在宣告型別之前,首先要先建立復合型別,

復合型別建立後可以多次使用,以便定義多個復合變數。

復合資料型別包括:

-記錄

-表

-巢狀表

-陣列

記錄是由一組相關的資料項組成的邏輯單元,每乙個資料項都有自己的名字和資料型別。

表是資料的集合,可將表中的資料作為乙個整體進行引用和處理。

表由列和關鍵字組成,其中通過關鍵字可成組地訪問行。

一經定義,記錄和表都可重複使用。

pl/sql

記錄•記錄是儲存在多個欄位中的一組相關的資料項,每個欄位都有自己的名字和資料型別。

•把字段的集合當作乙個整體的邏輯單元 

•主要用於從表中取出查詢到的行資料

記錄的特點:

•  每個記錄內都可以有許多字段。

•  可以為記錄賦初值,同時可用not null來限定記錄 

•  無初始值的字段定義為null •  在定義欄位時也可以使用保留字default 

•  可以在任意乙個塊、子程式或包的宣告部分定義record型別並宣告使用者自定義的記錄 

•  可以宣告並引用巢狀的記錄,乙個記錄可以是其他記錄的元件

語法:

type type_name is record (field_declaration[, field_declaration]…);

其中field_declaration:

field_name [[not null] expr]

type emp_record_type is record (empno emp.empno%type, ename emp.ename%type, job varchar2(9)); emp_record emp_record_type ;

賦值可以使用點號引用記錄中的字段

record_name.field_name

%rowtype

屬性•宣告的變數對應於資料庫表或檢視中列的集合

•在%rowtype 之前加上資料庫表名 

•記錄內字段的名字和資料型別參照表或檢視中的列 

declare emp_record emp%rowtype; …. emp_record.ename=『ljs』; emp_record.sal=3000; select * into emp_record from emp where ……;

%rowtype的優點:

•可以不必知道資料庫中列的數量和型別。

•在執行期間,資料庫中列的數量和型別可能發生變化。 

•在select語句中使用該屬性可以有效地檢索表中的行

建立

pl/sql

type type_name is table of [not null] [index by binary_integer]; identifier type_name;

declare type ename_table_type is table of emp.ename%type index by binary_integer; type hiredate_table_type is table of date index by binary_integer; ename_table ename_table_type; hiredate_table hiredate_table_type; begin ename_table(1) := 'cameron'; hiredate_table(8) := sysdate + 7; if ename_table.exists(1) then insert into ... ... end;

表方法:

復合資料型別

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

復合資料型別

一 struct結構體 封裝資料 存放多種不同的資料型別 struct的宣告放在全域性區 1.宣告和定義 宣告 struct student struct student stu array 3 int i for i 0 i 3 i for i 0 i 3 i include struct stu...

復合資料型別

結構體 作用 封裝資料 把多種不同的資料型別放在一起 注意 一般放在全域性 分號不能省略。結構體變數用點訪問 結構體指標用 訪問 初始化 靜態初始化 動態初始化 使用注意事項 給結構體中的陣列成員賦值時,不能直接將字串賦給陣列名,可以使用strcpy函式 給結構體中的指標變數成員賦值時,要先給指標分...