記錄Record、PL/SQL表和二維陣列

達芬奇的夢發表於2017-05-27

一、什麼是記錄RecordPL/SQL表?記錄Record:由單行多列的標量型別構成的臨時記錄物件型別。類似於多維陣列。
PL/SQL
表:由多行單列的索引列和可用列構成的臨時索引表物件型別。類似於一維陣列和鍵值對。兩者都屬於使用者自定義資料型別。二、Record + PL/SQL 用途是什麼?
Record + PL/SQL
表可以進行資料的多行多列儲存。這樣我們就可使用Record + PL/SQL表在需要時封裝一個臨時的表物件,進行傳遞和操作。透過Record自定義表結構,封裝一條記錄。PL/SQL表宣告 可用列 型別為Record型別(將可用列指向Record型別變數),每個索引對應一個Record型別變數。三、使用Record + PL/SQL表進行資料的多行多列儲存
1
、宣告Record型別和PL/SQL表,其中PL/SQL表的索引列為主鍵約束和唯一約束列或自增Integer。可用列為Record型別或%RowType型別。
2
、填充PL/SQL表可用列(Record型別):透過索引指向Record,使用Record訪問記錄成員。語法:
PL/SQL
表名(索引列值).記錄成員 := 記錄成員型別值;PL/SQL表名(索引列值) := Record型別變數;
--
注意其PL/SQL表中宣告的可用列要和這裡賦值的Record型別變數結構一樣
3
、訪問PL/SQL
4
、屬性方法:
count --
返回pl/sql表的總行數;
delete --
刪除pl/sql表的所有內容;
delete(
行數) --刪除pl/sql表的指定的行;
delete(
開始行,結束行) --刪除pl/sql表的多行;
first --
返回表的第一個INDEX;
next(
行數) --這個行數的下一條的INDEX;
last --
返回表的最後一個INDEX;

[@more@]

例:

CREATE OR REPLACE PROCEDURE PRO_EBFX_MAIN(SQL_IN VARCHAR2) IS

----CREATE BY TANGYUN------------------------------

----2010-10-09------------------------------------

-----二八分界線------------------------------------

TYPE EBFX_REC IS RECORD(

XD VARCHAR2(100),

YD NUMBER);

TYPE EBFX_TAB IS TABLE OF EBFX_REC;

DATA_TAB EBFX_TAB; ---用於存放傳進來的引數陣列

---返回記錄表

---XH:序號、PYDY值百分比、SPXD:X值累計百分比

TYPE EBFX_REC6 IS RECORD(

XH NUMBER,

XD VARCHAR2(100),

YD NUMBER,

PYD NUMBER,

SPXD NUMBER,

SPYD NUMBER);

TYPE PLSQL_TAB6 IS TABLE OF EBFX_REC6 INDEX BY BINARY_INTEGER;

<span lang="EN-US" style="FONT-SI

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31444259/viewspace-2139970/,如需轉載,請註明出處,否則將追究法律責任。

相關文章