Oracle記錄類型(record)和%rowtype


Oracle中的記錄類型(record)和使用%rowtype定義的數據類型都是一種單行多列的數據結構,可以理解為一個具有多個屬性的對象。其中屬性名即為列名。

 

記錄類型(record)

   記錄類型是一種由單行多列的標量構成的復合結構,將一個或多個標量封裝成一個對象,可以看做是一種用戶自定義數據類型。

    用法:

    1.聲明記錄名

    type 記錄名 is record(

      filed1 type1[not null][:=expr1]

      [,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 條件;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM