Oracle中的記錄類型(record)和使用%rowtype定義的數據類型都是一種單行多列的數據結構,能夠理解爲一個具備多個屬性的對象。其中屬性名即爲列名。數據結構
記錄類型(record)spa
記錄類型是一種由單行多列的標量構成的複合結構,將一個或多個標量封裝成一個對象,能夠看作是一種用戶自定義數據類型。對象
用法:變量
1.聲明記錄名date
type 記錄名 is record(file
filed1 type1[not null][:=expr1]select
[,filed2 type2[not null][:=expr2,.....]數據類型
);語法
not null表示不能爲空。方法
2.聲明記錄類型的變量
變量名 記錄名;
3.向變量中插入數據
有不少方法都能插入數據,能夠直接變量名.filed1 := 值;也能夠使用select...into....語句(Oracle的select...into....只能對單行數據進行操做)。
例:select 列名1,列名2 into 變量名 from 表名 where 條件。
4.訪問記錄成員
變量名.filed。
記錄類型的運算:
1.記錄賦值,同一記錄類型的變量可直接賦值。
變量1 := 變量2;
2.記錄比較,記錄不能夠總體比較,只能比較記錄的字段。
3.記錄不能夠總體判斷爲空,只能判斷記錄字段。
%rowtype
定義一個表示表中一行數據的變量。該變量的列名、數據類型都與數據表相同。
存取數方式爲:變量名.列名;
用法:
1.聲明變量
變量名 表名%rowtype;
2.賦值
a.每列單獨賦值:變量名.列名:= 值;
b.select...into...語句賦值:select * into 變量名 from 表名;
3.取值
變量名.列名。
使用記錄類型和%rowtype向表中更新數據
更新單行記錄可以使用記錄類型和%rowtype,使用這種方式的前提是記錄類型或%rowtype中的列和表中的列徹底匹配。直接使用關鍵字row和記錄類型或%rowtype類型的變量。
語法:
update 表名 set row = 變量名 where 條件;