PL/SQL技術(shù)及應(yīng)用
- 期刊名字:城市建設(shè)理論研究(電子版)
- 文件大?。?85kb
- 論文作者:張璐
- 作者單位:大慶頭臺(tái)油田開發(fā)有限責(zé)任公司
- 更新時(shí)間:2020-06-12
- 下載次數(shù):次
PL/SQL技術(shù)及應(yīng)用大慶頭臺(tái)油田開發(fā)有限責(zé)任公司黑龍江大慶163517摘要:給出了PL/SQL的概念和基本結(jié)構(gòu)及技術(shù),介紹了 PL/SQL的塊結(jié)構(gòu)和游標(biāo)、包技術(shù)及基本的語法規(guī)則,并結(jié)開發(fā)的實(shí)例進(jìn)一步對(duì)PL/SQL的技術(shù)和規(guī)則進(jìn)行了闡述關(guān)健詞:PL/SQL, OracleAbstract: given the Pl/SQL concept and basic structure and technology introduces the py/sQL block structure andcursor, bag technology and the basic grammar rules, and the further development and an example of PL/SQLKeywords: PL/SQL, Oracle中圖分類號(hào):TU74文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):由于油田信息化的發(fā)展,油田開發(fā)越來越依賴于開發(fā)數(shù)據(jù),這就意味著要求開發(fā)數(shù)據(jù)要具有更高的存儲(chǔ)、查詢、轉(zhuǎn)化的能力,而傳統(tǒng)的dbf數(shù)據(jù)庫(kù)已不能適用油田開發(fā)的需要, Oracle數(shù)據(jù)庫(kù)因?yàn)橛袕?qiáng)大的數(shù)據(jù)庫(kù)管理功能,逐漸取代了傳統(tǒng)的dbf數(shù)據(jù)庫(kù),并在油田各采油廠被廣泛的使用和積極的推廣。如何管理和使用 Oracle數(shù)據(jù)庫(kù),我們引入了PL/SQL. Developer軟件。PL/SL基本概念PL/SQL也是一種程序語言,是 Oracle數(shù)據(jù)庫(kù)對(duì)SQL語句的擴(kuò)展。在普通SQL語句的使用上增加了編程語言的特點(diǎn),所以PL/sQL就是把數(shù)據(jù)操作和査詢語句組織在PL/SsωL代碼的過程性單元中,通過邏輯判斷、循環(huán)等操作實(shí)現(xiàn)復(fù)雜的功能或者計(jì)算的程序語言。使用PL/sαL可以編寫具有很多高級(jí)功能的程序,雖然通過多個(gè)SQL語句可能也能實(shí)現(xiàn)同樣的功能,但是相比而言,PL/SQL具有更為明顯的一些優(yōu)點(diǎn)(1)能夠使一組SQL語句的功能更具模塊化程序特點(diǎn)(2)采用了過程性語言控制程序的結(jié)構(gòu)(3)可以對(duì)程序中的錯(cuò)誤進(jìn)行自動(dòng)處理,使程序能夠在遇到錯(cuò)誤的時(shí)候不會(huì)被中斷。(6)具有較好的可移植性,可以移植到另一個(gè) Oracle數(shù)據(jù)庫(kù)中。(7)集成在數(shù)據(jù)庫(kù)中,調(diào)用更快8)減少了網(wǎng)絡(luò)的交互,有助于提高程序性能二、PL/SoL程序的基本結(jié)構(gòu)及技術(shù)2.1塊PL/SQL是一種塊結(jié)構(gòu)的語言,組成PL/SQL程序的單元是邏輯塊,一個(gè)PL/SQL程序包含了一個(gè)或多個(gè)邏輯塊每個(gè)塊都可以劃分為三個(gè)部分。(1)塊的三個(gè)部分。①聲明部分( Dec larat ion section):包含了變量和常量的數(shù)據(jù)類型和初始值。這個(gè)部分是由關(guān)鍵字 DECLARE開始,如果不需要聲明變量或常量,那么可以忽略這一部分。②執(zhí)行部分( Executable section):執(zhí)行部分是PL/SL塊中的指令部分,由關(guān)鍵字 BEGIN開始,所有的可執(zhí)行語句都放在這一部分,其他的PL/SQL塊也可以放在這一部分。③異常處理部分( Except ion section):這一部分是可選的,在這一部分中處理異?;蝈e(cuò)誤,對(duì)異常處理的詳細(xì)討論在后面進(jìn)行。(2)塊語。PL/SQL塊語法結(jié)構(gòu):[ DECLARE]; Declaration statements; BEGIN; Executable Statements:[ EXCEPTIONException Handlers]; ENDPL/SQL塊中的每一條語句都必須以分號(hào)結(jié)束,SQL語句可以多行,但分號(hào)表示該語句的結(jié)束。一行中可以有多條SQL語句,他們之間以分號(hào)分隔。每一個(gè)PL/SQL塊由 BEGIN或 DECLARE開始,以END結(jié)束。注釋由一標(biāo)示2.2游標(biāo)(1)概念。用來査詢數(shù)據(jù)庫(kù),獲取記錄集合(結(jié)果集)的指針,可以讓開發(fā)者一次訪問一行結(jié)果集,在每條結(jié)果集上作操作(2)分類。靜態(tài)游標(biāo)分為顯式游標(biāo)和隱式游標(biāo)。REF游標(biāo)是一種引用類型,類似于指針3)內(nèi)容。顯式游標(biāo): CURSOR游標(biāo)名(參數(shù))[返回值類型] Is Select語句:生命周期:打開游標(biāo)(OPEN:解析,綁定。不會(huì)從數(shù)據(jù)庫(kù)檢索數(shù)據(jù);從游標(biāo)中獲取記錄( FETCH INT0),執(zhí)行査詢,返回結(jié)果集。通常定義局域變量作為從游標(biāo)獲取數(shù)據(jù)的緩沖區(qū);關(guān)閉游標(biāo)(CL0SE),完成游標(biāo)處理,用戶不能從游標(biāo)中獲取行。還可以重新打開。隱式游標(biāo):我們可以使用for循環(huán)來對(duì)游標(biāo)進(jìn)行隱式處理。For循環(huán)中變量νtest不需要在聲明部分聲明,它由PS劬Lλ編譯器進(jìn)行隱式的聲明。并且for循環(huán)開始的時(shí)候,游標(biāo)也就隱式地打開了。顯式和隱式游標(biāo)的區(qū)別:盡量使用隱式游標(biāo),避免編寫附加的游標(biāo)控制代碼(聲明,打開,獲取,關(guān)閉),也不需要聲明變量來保存從游標(biāo)中獲取的數(shù)據(jù)。中國(guó)煤化工2.3包CNMHG包它是有包規(guī)范和包體兩部分組成的,當(dāng)建立包時(shí),需要先建立包規(guī)范,再建立包體1)建立包規(guī)范。包規(guī)范實(shí)際是包與應(yīng)用程序之間的接口,它用于定義包的公用組件,包括常量、變量、游標(biāo)。過程和函數(shù)等再包規(guī)范中所定義的公用組件不僅可以再包內(nèi)引用,而且也可以由其他的子程序引用。也就是說再包規(guī)范中所定義的公用組件是公開的、是可以被其他的程序所調(diào)個(gè)角度說,為了實(shí)現(xiàn)信息的隱藏,不應(yīng)該將所有組件全部放在包規(guī)范處定義,而應(yīng)該只定義想對(duì)其他用戶公開的組件即公用組件。(2)建立包體。包體用于實(shí)現(xiàn)過程和函數(shù),包括用于實(shí)現(xiàn)包規(guī)范所定義的過程和函數(shù)。建立包體時(shí),也可以單獨(dú)定義私有的組件,包括變量、常量、過程和函數(shù)等,但再包體中所定義的私有組件只能再包內(nèi)使用,而不能由其他子程序引用3)包技術(shù)優(yōu)點(diǎn)。便于管理:在開始編程時(shí),便為每個(gè)項(xiàng)目建立一個(gè)相應(yīng)的包,并且包的名稱即為項(xiàng)目名稱。這樣在項(xiàng)目開發(fā)和日后的維護(hù)上,開發(fā)和管理人員會(huì)很方便的找到項(xiàng)目的對(duì)應(yīng)程序。不會(huì)因時(shí)間或其他人員接手而產(chǎn)生在庫(kù)中無處可尋項(xiàng)目程序的情況。有助于信息的隱藏:只在包規(guī)范中對(duì)一些想對(duì)外公開的組件進(jìn)行定義,這樣就對(duì)開發(fā)人員所編寫的算法進(jìn)行了保護(hù),保護(hù)住了算法的私有性就保護(hù)住了開發(fā)軟件的技術(shù)核心,因?yàn)橐粋€(gè)軟件的最重要的就是它的算法,軟件公司賣的實(shí)質(zhì)也是軟件的算法。這樣使用包技術(shù)就有效的保護(hù)了知識(shí)產(chǎn)權(quán)。三、PL/SoL的基本語法在寫PL/SQL語句是,必須遵循一些基本的語法,PL/SQL程序代碼的基本語法要求(1)語句可以寫在多行,就像SQL語句一樣(2)各個(gè)關(guān)鍵字、字段名稱等等,通過空格分隔(3)每條語句必須以分號(hào)結(jié)束,包括PL/SQL結(jié)束部分的END關(guān)鍵字后面也需要分號(hào)4)標(biāo)識(shí)符需要遵循相應(yīng)的命名規(guī)定。名稱最多可以包含30個(gè)字符:不能直接使用保留字,如果需要需要使用雙引號(hào)括起來;第一個(gè)字符必須以字母開始;不要與數(shù)據(jù)庫(kù)的表或者科學(xué)計(jì)數(shù)法表示。四、PL/SQL實(shí)例PROCeduRE P jshscl( p km VaRChar2)IS-計(jì)算核實(shí)產(chǎn)量cursor mcu is select dwdm, bh jhfrom t scrbzdwhere gxsj = v mareordebegindelete from tz djy jsj where rqv rq and km=p km;FOR emp rec In mcu LOOPp djs( emp rec. bh jh,pkm):-提取油井單井?dāng)?shù)據(jù)pfhs( emp rec.dwdm);-批分核實(shí)p hphs( eimp rec.dwdm):-回配ert into tz djy jsj select* from tz djy jsc:-生成油井單井?dāng)?shù)據(jù)表commitEND LOOPend p jshs五、總結(jié)PL/SQL為客戶和服務(wù)器應(yīng)用程序的服務(wù)器建了一個(gè)語言和使用的橋梁,為 Oracle的數(shù)據(jù)開發(fā)提供了一個(gè)軟件平臺(tái),為Oracle數(shù)據(jù)的使用提供了一個(gè)服務(wù)平臺(tái)。PL/ SQL Developer軟件為油田 Oracle的數(shù)據(jù)庫(kù)的管理和軟件的開發(fā)提供了保障參考文就[1]劉榮華等. Oracle數(shù)據(jù)庫(kù)管理與應(yīng)用系統(tǒng)開發(fā)[M].人民郵電出版社,2006.[2]胡欣杰. Oracle9i數(shù)據(jù)庫(kù)管理員指南[M].北京希望電子出版社,2002[3]王海亮.精通 Oracle10g pl/sq1[M].編程中國(guó)水利水電出版社,2004中國(guó)煤化工CNMHG
-
C4烯烴制丙烯催化劑 2020-06-12
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-06-12
-
生物質(zhì)能的應(yīng)用工程 2020-06-12
-
我國(guó)甲醇工業(yè)現(xiàn)狀 2020-06-12
-
石油化工設(shè)備腐蝕與防護(hù)參考書十本免費(fèi)下載,絕版珍藏 2020-06-12
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡(jiǎn)介 2020-06-12
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-06-12
-
甲醇制芳烴研究進(jìn)展 2020-06-12
-
精甲醇及MTO級(jí)甲醇精餾工藝技術(shù)進(jìn)展 2020-06-12
