1. 程式人生 > 實用技巧 >Oracle記錄型別(record)使用

Oracle記錄型別(record)使用

RECORD——儲存單行多列結構的資料.

  • RECORD:使用者自己定義資料型別,由單行多列的標量構成的複合資料型別。它將一個或多個標量封裝成一個物件進行操作記錄不能夠總體拿來比較也不能夠總體推斷為空。能夠總體拿來賦值。組成相似於多維陣列。
  • 將一個或多個標量封裝成一個物件進行操作。是一種暫時複合物件型別。使用記錄型別變數時必須先定義記錄的結構,然後再定義記錄型別的變數。

TYPE語句定義記錄型別的語法形式:

TYPE 記錄名 IS RECORD
(field1_name data_type [not null] [:=|default value],
…
fieldn_name data_type 
[not null] [:=|default value]);

【例項】定義一個記錄型別rec_product,並使用該記錄變數儲存產品編號為1的產品的編號、名稱、單價、單位數量

DECLARE
 TYPE rec_product  IS RECORD
 (Prod_ID number,
  Prod_Name nvarchar2(40),
  Quant_PerUnit nvarchar2(20),
  Unit_Price number(38,3)
  );
r_prod rec_product;
BEGIN
 SELECT  productid, productname, quantityperunit,unitprice
INTO r_prod FROM products WHERE productid=1; Dbms_output.put_line(r_prod. Prod_ID); Dbms_output.put_line(r_prod. Prod_Name); Dbms_output.put_line(r_prod. Quant_PerUnit); Dbms_output.put_line(r_prod. Unit_Price); END;

注意:

  1. 一個PL/SQL RECORD必須包含一個或多個欄位:這些欄位的資料型別可以是標量型別、RECORD型別或PL/SQL表型別。
  2. 一般在PL/SQL塊中從表中取出一行進行處理時用PL/SQL RECORD。
  3. SELECT語句查詢的列值的數量與順序,必須與建立記錄型別變數中定義的欄位數量和順序相匹配。
  4. 一個記錄型別的變數僅僅能儲存從資料庫中查詢出的一行記錄,若查詢出了多行記錄。就會出現錯誤。