版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Oracle SQL CREATE OR REPLACE PROCEDURE procedure_name parameter_list AUTHID CURRENT_USER | DEFINER IS | AS function_body; CREATE OR REPLACE PACKAGE package_spec_name AUTHID CURRENT_USER | DEFINER IS | AS package_spec; CREATE OR REPLACE TYPE type_name AUTHID CURRENT_USER | DEFINER IS | AS OBJECT type
2、_spec,在SQL語(yǔ)句中使用存儲(chǔ)函數(shù),PL/SQL 2.1版(Oracle 7的7.1版)及更高版本從SQL語(yǔ)句中調(diào)用子程序 根據(jù)用戶定義函數(shù)的使用場(chǎng)合以及運(yùn)行的數(shù)據(jù)庫(kù)版本,函數(shù)必須滿足不同限制。 函數(shù)的使用受純度等級(jí)限制。純度等級(jí)定義了函數(shù)讀取或修改哪種數(shù)據(jù)結(jié)構(gòu),純度等級(jí),純度等級(jí),根據(jù)函數(shù)純度等級(jí),它調(diào)用將受到如下限制: 任何從SQL語(yǔ)句調(diào)用的函數(shù)不能修改任何數(shù)據(jù)庫(kù)表(WNDS)。 為了實(shí)現(xiàn)遠(yuǎn)程運(yùn)行(通過(guò)數(shù)據(jù)庫(kù)連接)或并行運(yùn)行,函數(shù)不能讀取或?qū)懭氚兞康闹担≧NPS和WNPS) 從SELECT,VALUES,或SET子句調(diào)用的函數(shù)可以寫入包變量。所有其他子句中的函數(shù)都必須具有WNPS純度
3、等級(jí)。 函數(shù)僅僅與它所調(diào)用的子程序具有同樣的純度等級(jí)。 不管存儲(chǔ)PL/SQL函數(shù)具有何種純度等級(jí),都不能從CREATE TABLE或ALTER TABLE命令的CHECK約束子句中調(diào)用該存儲(chǔ)PL/SQL函數(shù)。也不能使用該存儲(chǔ)PL/SQL函數(shù)來(lái)為一個(gè)列指定缺省值,用戶函數(shù)從SQL語(yǔ)句中調(diào)用滿足的要求,函數(shù)必須要存儲(chǔ)在數(shù)據(jù)庫(kù)中,其形式可以是獨(dú)立的函數(shù),或作為包的一部分。不能是局部的 函數(shù)只能使用IN參數(shù),不能使用IN OUT 或OUT 形參只能使用數(shù)據(jù)庫(kù)類型,而不能使用諸如BOOLEAN或RECORD之類的PL/SQL類型。 函數(shù)的返回類型也必須是數(shù)據(jù)庫(kù)類型 函數(shù)不能使用COMMIT或ROLLBA
4、CK約束當(dāng)前事務(wù),也不能回滾到函數(shù)運(yùn)行前的斷點(diǎn)。 函數(shù)也不能發(fā)出任何ALTER SESSION或ALTER SYSTEM命令,默認(rèn)參數(shù),從過(guò)程化語(yǔ)句中調(diào)用一個(gè)函數(shù)時(shí),如果該函數(shù)有形參的話,可以使用其缺省值。然而,如果從SQL語(yǔ)句調(diào)用函數(shù)時(shí),必須指定所有參數(shù)。 必須使用定位符(Positinal Notation),而不能使用命名符(Name Notation,在Oracle8i中從SQL語(yǔ)句調(diào)用函數(shù),Oracle8i提供了TRUST關(guān)鍵字,用來(lái)代替或補(bǔ)充純度等級(jí)參數(shù)。若使用了它,那么在編譯標(biāo)識(shí)中列出的限制就不會(huì)強(qiáng)制執(zhí)行。 從Oracle8i起,從DML語(yǔ)句中調(diào)用的函數(shù)既不可以從正在被該DML語(yǔ)
5、句修改的數(shù)據(jù)庫(kù)表讀取數(shù)據(jù),也不能對(duì)其進(jìn)行修改,但該函數(shù)可以更新其他表,包的輔助功能,共享池鎖定 包體長(zhǎng)度的限制 優(yōu)化參數(shù),共享池鎖定,DBMS_SHARED_POOL包允許程序員把一個(gè)對(duì)象鎖定在共享池中。 當(dāng)該對(duì)象被鎖定后,除非由程序申請(qǐng)對(duì)其清除,否則無(wú)論共享池有多滿,也不管是否有程序訪問該對(duì)象,該對(duì)象將常駐在共享池中。 這種處理方法有利于提高程序的運(yùn)行效率,因?yàn)閺南到y(tǒng)的磁盤重新裝入對(duì)象要進(jìn)行大量讀寫操作。鎖定對(duì)象還有助于最大限度地減少共享池的碎片,共享池鎖定,DBMS_SHARED_POOL.KEEP過(guò)程:用來(lái)在共享池中鎖定對(duì)象。包、觸發(fā)器、序列等可被鎖定,獨(dú)立過(guò)程和函數(shù)不能所定 DBMS_
6、SHARED_POOL.UNKEEP過(guò)程 DBMS_SHARED_POOL.SIZES過(guò)程:它把共享池的內(nèi)容輸出到屏幕 DBMS_SHARED_POOL.ABORTED_REQUEST_THRESHOLD過(guò)程:停止釋放對(duì)象,包體長(zhǎng)度的限制,編譯器對(duì)包體長(zhǎng)度的限制如下 : Diana樹中的節(jié)點(diǎn)數(shù)。在Oracle8i之前的版本中,Diana節(jié)點(diǎn)的最大數(shù)目是32K,Oracle8i以上版本將包體和類型體的限制擴(kuò)充到了64兆字節(jié)的容量。 編譯器生成的臨時(shí)中間變量的容量最多21K字節(jié)。 入口點(diǎn)的數(shù)量。一個(gè)包體最多可以有32K個(gè)入口點(diǎn),入口點(diǎn)可以是過(guò)程或函數(shù)。 字符串的數(shù)量。PL/SQL對(duì)字符串的限制單位
7、是232,優(yōu)化參數(shù),使用DETERMINISTIC和PARALLEL_ENABLE關(guān)鍵字,PL/SQL編譯優(yōu)化器將會(huì)對(duì)調(diào)用PL/SQL函數(shù)進(jìn)行優(yōu)化。 該關(guān)鍵字要放在函數(shù)的返回類型和IS或AS子句之間,CREATE OR REPLACE FUNCTION function_name parameter_list RETURN return_type DETERMINISTIC PARALLEL_ENABLE IS|AS function_body,本章小結(jié),通過(guò)訪問各種數(shù)據(jù)庫(kù)字典視圖來(lái)查詢子程序的信息。user_objects視圖包含了當(dāng)前用戶擁有的所有對(duì)象的信息。user_source視圖包含對(duì)象的源程序代碼。user_errors視圖則包含編譯錯(cuò)誤的信息。 預(yù)先聲明可以解決函數(shù)之間相互調(diào)用的問題。 子程序引用其他數(shù)據(jù)庫(kù)對(duì)象時(shí),該子程序依賴于那個(gè)對(duì)象。如果修改了被引用對(duì)象,那么依賴對(duì)象的狀態(tài)將更改為無(wú)效,指出需要重新編譯。 在PL/SQL中使用的函數(shù)可以使用額外的限制,這被稱為純度等級(jí)。 共享池是在子程序運(yùn)行時(shí)包含已編譯子程序偽代碼及其他代碼的SGA的一部分。KEE
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度公路建設(shè)廉政承諾及交通安全管理合同3篇
- 二零二五年度帶物業(yè)費(fèi)結(jié)算與社區(qū)配套的二手房屋個(gè)人買賣合同3篇
- 二零二五年度智能家居生活體驗(yàn)個(gè)人住房租賃服務(wù)協(xié)議3篇
- 遠(yuǎn)程監(jiān)控技術(shù)課程設(shè)計(jì)
- 應(yīng)用文啟事課程設(shè)計(jì)
- 二零二五年度市場(chǎng)營(yíng)銷戰(zhàn)略合同3篇
- 二零二五年度公路運(yùn)輸物流信息化平臺(tái)建設(shè)合同3篇
- 英國(guó)文物修復(fù)課程設(shè)計(jì)
- 2025年度生豬養(yǎng)殖與電子商務(wù)平臺(tái)合作合同3篇
- 二零二五年度新型城鎮(zhèn)化項(xiàng)目配套基礎(chǔ)設(shè)施建設(shè)國(guó)有土地租賃合同3篇
- 農(nóng)業(yè)機(jī)械培訓(xùn)課件
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試英語(yǔ)試題 附答案
- 2023年年北京市各區(qū)初三語(yǔ)文一模分類試題匯編 - 作文
- 2024年度心理輔導(dǎo)合作協(xié)議模板版
- GB/T 22723-2024天然氣能量的測(cè)定
- 能源崗位招聘筆試題與參考答案(某大型國(guó)企)2024年
- 航空與航天學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 麻醉蘇醒期躁動(dòng)患者護(hù)理
- 英語(yǔ)雅思8000詞匯表
- 2024年《13464電腦動(dòng)畫》自考復(fù)習(xí)題庫(kù)(含答案)
- 2025年遼寧中考語(yǔ)文復(fù)習(xí)專項(xiàng)訓(xùn)練:文言文閱讀(含解析)
評(píng)論
0/150
提交評(píng)論