溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PLSQL中的內(nèi)存表--Index By Table

發(fā)布時間:2020-06-25 08:55:12 來源:網(wǎng)絡(luò) 閱讀:1963 作者:xiaofeng520ct 欄目:數(shù)據(jù)庫

其實內(nèi)存表有點類似于java中的數(shù)組,但是它有比起數(shù)組更強大的地方。

1.首先來簡單介紹內(nèi)存表的作用:

  •   使用BINARY_INTEGER 類型構(gòu)成的索引主鍵

  •    簡單類型 或者用戶自定義類型的字段作為具體的數(shù)組元素

2.如何來使用內(nèi)存表類型呢?

      定義內(nèi)存表類型

        TYPE type_name IS  TABLE OF 存儲類型(number , employees.last_name%TYPE , employees%ROWTYPE , varchar2)    


             INDEX BY (BINARY_INTEGER,varchar2(80)..) 

               ---varchar2(80)表示下標可以通過字符串來訪問,這比java中數(shù)組功能強大

     聲明該類型變量

         identifier  type_name


3.內(nèi)存表中的一些屬性和方法

   賦值:

        identifier(1) := 'Jams'    --這是index by binary_integer

        identifier('A') := 'Jams'  -- 這是index by varchar2

       與java中數(shù)組區(qū)別就是內(nèi)存表可以用字符串作為下標

    3-1.count方法:

         identifier.count  --返回內(nèi)存表中行的數(shù)目

    3-2.exists方法:

        identifier.exists(1) --判斷下標為1的元素存不存在

    3-3.first 和 last屬性:

        first:返回第一行的索引

        last: 返回最后一行的索引

first 和 last的用法:

  一般使用在遍歷內(nèi)存表的情況

for i in identifier.first .. identifier.last  loop

 ............
end loop

這里必須注意兩點:

   1.如果內(nèi)存表中沒有任何數(shù)據(jù),但是你卻通過這種方式遍歷它,會報錯,所以在遍歷前應(yīng)該用

count方法來做一次判斷

    2.假如內(nèi)存表中的數(shù)據(jù)下標不連續(xù)怎么辦?

比如 內(nèi)存表只有identifier(2), identifier(5),

當遍歷到下標為1,3,4時,要做異常或報錯處理,否則會報錯。


 3-4.delete方法:

            identifier.delete(1) --刪除內(nèi)存表中下標為1的元素

            identifier.delete --刪除內(nèi)存表所有元素

     3-5.next和prior屬性:

         identifier.next(1)  --返回內(nèi)存表中下標為1行的下一行索引

            identifier.prior(2) --返回內(nèi)存表中下標為2行的上一行索引



這里附帶上INDEX BY BINARY_INTEGER的作用

    --http://blog.itpub.net/26690043/viewspace-722081/

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI