Oracle知識之集合和成員函數(shù)_第1頁
Oracle知識之集合和成員函數(shù)_第2頁
Oracle知識之集合和成員函數(shù)_第3頁
Oracle知識之集合和成員函數(shù)_第4頁
Oracle知識之集合和成員函數(shù)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

集合和成員函數(shù)第十章回顧在上一章中,我們討論了數(shù)據(jù)庫觸發(fā)器內(nèi)置程序包2目標(biāo)本章討論PL/SQL表和記錄嵌套表和可變數(shù)組成員函數(shù)和過程3PL/SQL表和記錄9-1PL/SQL表在PL/SQL塊中臨時使用、像數(shù)組一樣的對象包含一列和一個主鍵不能對列和主鍵進(jìn)行命名列可以是任何標(biāo)量數(shù)據(jù)類型主鍵必須是binary_integer類型大小沒有限制4PL/SQL表和記錄9-2聲明PL/SQL表在塊、子程序或程序包的聲明部分進(jìn)行聲明所包含的步驟定義表的類型TYPEtypenameISTABLEOFcol_defINDEXBYBINARY_INTEGER;聲明該類型的一個PL/SQL表Tablenametypename;

其中typename

是類型名。5PL/SQL表和記錄9-3引用PL/SQL表使用主鍵值引用PL/SQL表中的行tablename(key_value)

其中,tablename是表名,key_value是鍵值。賦值要給某行賦值,請使用tablename(key_value):=expression;

其中tablename是表名,key_value是鍵值,expression是表達(dá)式。6PL/SQL表和記錄9-4管理PL/SQL表使用Insert語句從表中向數(shù)據(jù)庫中添加數(shù)據(jù)使用Delete語句從表中刪除數(shù)據(jù)7PL/SQL表和記錄9-5記錄存儲在字段中的一組相關(guān)數(shù)據(jù)項字段有自己的名稱和數(shù)據(jù)類型可以使用%ROWTYPE來聲明記錄,它表示表的行優(yōu)點用戶定義的記錄可以有任意數(shù)目的不同

數(shù)據(jù)類型的列8PL/SQL表和記錄9-6聲明記錄首先,定義記錄類型TYPEtypenameISRECORD

(列定義.…);

其中,typename

是類型名。

聲明一個該類型的記錄作為標(biāo)識符recordtypetypename;

其中recordtype

是記錄類型,而typename

是類型名。%type和%rowtype可以用來指定列的數(shù)據(jù)類型。NOTNULL列必須在聲明部分進(jìn)行初始化。9PL/SQL表和記錄9-7引用記錄引用字段的語法是recordname.columnname

用于給列賦值的語法是recordname.columnname:=expression;

其中,recordname

是記錄名,而columnname

是列名,expression

是表達(dá)式。10PL/SQL表表和記記錄9-8批量綁定定綁定-對PL/SQL變量的賦賦值批量綁定定-一次綁定定一整個個集合提高DML語句的性性能FORALL關(guān)鍵字用用于要在在發(fā)送到到SQL引擎之前前對輸入入集合進(jìn)進(jìn)行批量量綁定11PL/SQL表表和記記錄9-9BULKCOLLECT子句通知SQL引擎在將將輸出集集合返回回到PL/SQL引擎之前前對它們們進(jìn)行批批量綁定定用于下列子子句SELECTINTOFETCHINTORETURNINGINTO12嵌套表和可可變數(shù)組11-1嵌套表嵌套在另一一個表中的的表可以直接使使用SQL進(jìn)行操縱通過添加額額外的集合合方法來擴擴展索引檢檢索表的功功能聲明嵌套表表用來聲明的的語法是TYPEtablenameISTABLEOFtabletype;其中,tablename是表名,而而tabletype是表類型。。13嵌套表和可可變數(shù)組11-2嵌套表聲明時初始始化為NULL使用構(gòu)造函函數(shù)來完成成初始化構(gòu)造函數(shù)跟跟表類型同同名14嵌套套表表和和可可變變數(shù)數(shù)組組11-3創(chuàng)建建嵌嵌套套表表所所包包含含的的步步驟驟使用用CREATETYPE語句句來來創(chuàng)創(chuàng)建建類類型型使用用ASTABLEOF子句句基基于于此此類類型型創(chuàng)創(chuàng)建建另另一一個個類類型型使用用CREATETABLE語句句來來創(chuàng)創(chuàng)建建表表,,關(guān)關(guān)鍵鍵字字為為NESTEDTABLE……STOREAS15嵌套套表表和和可可變變數(shù)數(shù)組組11-4嵌套套表表與與索索引引檢檢索索表表相似似之之處處數(shù)據(jù)據(jù)類類型型有有相相同同的的結(jié)結(jié)構(gòu)構(gòu)用下下標(biāo)標(biāo)來來訪訪問問單單個個元元素素為索索引引檢檢索索表表編編寫寫的的代代碼碼同同樣樣適適用用于于嵌嵌套套表表16嵌套套表表和和可可變變數(shù)數(shù)組組11-5嵌套套表表與與索索引引表表差異異嵌套表

索引表使用SQL來操縱并存儲在數(shù)據(jù)庫中不可能下標(biāo)范圍:1到2147483647下標(biāo)范圍:-2147483647到2147483647可用ISNULL操作符來驗證不可驗證可用EXTEND和TRIM方法不可用17嵌套套表表和和可可變變數(shù)數(shù)組組11-6可變變數(shù)數(shù)組組類似似于于C或者者Pascal中的的數(shù)數(shù)組組的的數(shù)數(shù)據(jù)據(jù)類類型型類似似于于嵌嵌套套表表或或者者索索引引檢檢索索表表可以以對對其其元元素素數(shù)數(shù)目目設(shè)設(shè)置置限限制制18嵌套套表表和和可可變變數(shù)數(shù)組組11-7聲明可變數(shù)組組用于聲明可變變數(shù)組的語法法是TYPEtypenameISVARRAY(maximum_size)OFelement_type(notnull);typename是可變數(shù)組名名Maximum_size設(shè)置了元素的的數(shù)目Element_type不能為boolean、ref游標(biāo)、表或者另一種種可變數(shù)組類類型19嵌套表和可變變數(shù)組11-8可變數(shù)組可變數(shù)組可以以存儲在數(shù)據(jù)據(jù)庫的列中只可以整個地地對可變數(shù)組組進(jìn)行操縱要修改一個可可變數(shù)組,首首先要把其值值選到一個變變量中,進(jìn)行行修改,然后后插入到表中中20嵌套表和可變變數(shù)組11-9集合方法方法描述Exists(n)如果第n個元素存在的話,返回TRUECount返回元素的總數(shù)Limit返回元素的最大數(shù)目First返回該集合的第一個元素Last返回該集合的最后一個元素21嵌套表和可變變數(shù)組11-10集合方法方法描述Prior(x)返回第x個元素之前的元素Next(x)返回第x個元素之后的元素Extend(x,y)追加x個第y個元素的副本Trim(x)從集合的末尾處截斷x個元素Delete刪除部分或者全部元素22嵌套表和可變變數(shù)組11-11可變數(shù)組與嵌嵌套表相似之處允許使用下標(biāo)標(biāo)來訪問單個個元素可以存儲到數(shù)數(shù)據(jù)庫的表中中差異可變數(shù)組有最最大容量,而而嵌套表沒有有可變數(shù)組-跟包含它它的表存儲在在一起,嵌套表-存存儲在單個個表中23成員函數(shù)和過過程2-1構(gòu)造函數(shù)方法法Oracle的每個對象均均有一個內(nèi)置置的構(gòu)造函數(shù)數(shù)方法用于創(chuàng)建對象象的一個實例例無需顯式地定定義與對象類型同同名24成員函數(shù)和過過程2-2對象類型包含類型規(guī)格格和類型主體體類型規(guī)格應(yīng)用程序的接接口聲明數(shù)據(jù)結(jié)構(gòu)構(gòu)和操作來操操縱數(shù)據(jù)類型主體定義方法實現(xiàn)規(guī)格25總結(jié)2-1PL/SQL表有一列和一一個主鍵記

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論