




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第12章Oracle編程基礎(chǔ)本章介紹Oracle編程基礎(chǔ),主要有PL/SQL相關(guān)內(nèi)容和Oracle的控制語句。PL/SQL(Procedural
Language/SQL)是Oracle在SQL標(biāo)準(zhǔn)語言上進(jìn)行擴(kuò)展后形成的程序設(shè)計(jì)語言,是一種Oracle數(shù)據(jù)庫特有的、支持應(yīng)用開發(fā)的語言。Oracle編程中也需要結(jié)合使用流程控制語句,用于控制PL/SQL語句、語句塊的執(zhí)行過程。12.1PL/SQL簡(jiǎn)介PL/SQL是Oracle公司開發(fā)的一種編程語言,它是對(duì)SQL的擴(kuò)充。在PL/SQL程序中,可以定義變量、數(shù)據(jù)類型、函數(shù)以及過程,可以使用流控制語句,可以包含SQL語句,還可以進(jìn)行錯(cuò)誤處理。利用PL/SQL程序,可以對(duì)數(shù)據(jù)庫進(jìn)行復(fù)雜的訪問。12.1.1PL/SQL基本結(jié)構(gòu)PL/SQL是一種結(jié)構(gòu)化編程語言。程序的基本單元是塊,主要的塊形式有函數(shù)、過程和匿名塊。一個(gè)PL/SQL塊由以下三部分組成,其大體結(jié)構(gòu)如圖所示。12.1.1PL/SQL基本結(jié)構(gòu)【示例12-1】輸出語句“Hello,Lifeforfun,styleforteens”。12.1.2PL/SQL注釋注釋增強(qiáng)了程序的可讀性,使得程序更易于理解。注釋在進(jìn)行編譯時(shí)被PL/SQL編譯器忽略。注釋有單行注釋和多行注釋兩種,這與許多高級(jí)語言的注釋風(fēng)格是一樣的。1.單行注釋單行注釋由兩個(gè)連字符(-)開始,一直到行尾(回車符標(biāo)志著注釋的結(jié)束)?!臼纠?2-2】對(duì)示例12-1進(jìn)行單行注釋。12.1.2PL/SQL注釋2.多行注釋多行注釋由/*開頭,由*/結(jié)尾,這和C語言是一樣的?!臼纠?2-3】多行注釋說明。12.1.3PL/SQL基本規(guī)則做任何事情都有規(guī)范,編程也一樣。在PL/SQL中,也需要遵守一些規(guī)范,這樣可以提高代碼的可讀性,提高工作效率。12.1.3PL/SQL基本規(guī)則1.PL/SQL中允許出現(xiàn)的字符集。字母,包括大寫和小寫。數(shù)字,即0~9??崭?、回車符。數(shù)學(xué)符號(hào),包括+、-、*、/、<、>、=。間隔符,包括()、{}、[]、?、!、;、:、,、"、@、#、$、%、^、&等。12.1.3PL/SQL基本規(guī)則2.PL/SQL需要遵守的要求。標(biāo)識(shí)符是不區(qū)分大小寫的。標(biāo)識(shí)符中只允許出現(xiàn)字母、數(shù)字、下劃線,并且以字母開頭。語句以分號(hào)結(jié)束。字符型和日期型必須使用括號(hào)括起。語句的關(guān)鍵詞、標(biāo)識(shí)符12.1.3PL/SQL基本規(guī)則3.PL/SQL中可以參考的規(guī)范。每行只寫一條語句。所有的過程名稱大寫。所有的變量以及自建的過程或游標(biāo)、觸發(fā)器名稱都使用有意義的名稱命名。命名應(yīng)該以“_”的連接方式,也可以使用大小寫混合的方式。變量前最好加上前綴,以表示該變量的數(shù)據(jù)類型、作用范圍等。每個(gè)變量都應(yīng)加上注釋。在重要的程序段都應(yīng)加上注釋。這些只是基本的規(guī)則,可以提高代碼的可讀性。在日常中應(yīng)該注意這些規(guī)范,形成良好的編程習(xí)慣。數(shù)據(jù)類型Oracle定義的數(shù)據(jù)據(jù)類型很多多,掌握這這些簡(jiǎn)單的的數(shù)據(jù)類型型有助于編編寫一些復(fù)復(fù)雜的程序序。下面將將對(duì)常用數(shù)數(shù)據(jù)類型進(jìn)進(jìn)行介紹。。數(shù)據(jù)類型1.數(shù)字類型數(shù)字類型變變量存儲(chǔ)整整數(shù)或者實(shí)實(shí)數(shù)。它包包含number、pls_integer和binary_integer3種基本類型型。其中,,number類型的變量量可以存儲(chǔ)儲(chǔ)整數(shù)或浮浮點(diǎn)數(shù),而而pls_integer和binary_integer類型的變量量只存儲(chǔ)整整數(shù)。數(shù)據(jù)類型2.字符類型字符類型變變量用來存存儲(chǔ)字符串串或者字符符數(shù)據(jù)。其其類型包括括varchar2、char、nchar、nvarchar2等。varchar2:可以存儲(chǔ)儲(chǔ)變長字符符串。char類型表示定定長字符串串。nchar類型表示的的是存儲(chǔ)Unicode字符集的定定長字符集集數(shù)據(jù)。nvarchar2類型表示的的是存儲(chǔ)Unicode字符集的變變長字符集集數(shù)據(jù)。數(shù)據(jù)類型3.日期類型日期類型是是用來存放放表示日期期的數(shù)據(jù)的的。日期類類型有date、timestamp。date類型用來存存儲(chǔ)日期和和時(shí)間的。。date類型的時(shí)間間精確到秒秒。timestamp類型也是用用來存儲(chǔ)日日期和時(shí)間間信息,包包括世紀(jì)、、年、月、、天、小時(shí)時(shí)、分鐘和和秒。與date類型的區(qū)別就就是在顯示日日期和時(shí)間時(shí)時(shí)更精確。timestamp類型可以精確確到小數(shù)秒。。使用timestamp類型存放日期期還可以顯示示當(dāng)前是上午午還是下午。。數(shù)據(jù)類型4.布爾類型布爾類類型中中的唯唯一類類型是是boolean,主要要用于于控制制程序序流程程。一一個(gè)布布爾類類型變變量的的值可可以是是true、false和null。數(shù)據(jù)類類型5.type定義的的數(shù)據(jù)據(jù)類型型上面介介紹了了幾種種常用用的數(shù)數(shù)據(jù)類類型,,下面面來介介紹一一下如如何定定義數(shù)數(shù)據(jù)類類型,,它類類似C語言中中的結(jié)結(jié)構(gòu)類類型。。定義義數(shù)據(jù)據(jù)類型型的語語句格格式如如圖所所示。。運(yùn)算符符運(yùn)算符符是一一種符符號(hào),,用來來指定定要在在一個(gè)個(gè)或者者多個(gè)個(gè)表達(dá)達(dá)式中中執(zhí)行行的操操作。。運(yùn)算算符一一般也也用在在執(zhí)行行列、、常量量或變變量之之間的的數(shù)學(xué)學(xué)運(yùn)算算和比比較操操作中中。而而表達(dá)達(dá)式則則是標(biāo)標(biāo)識(shí)符符、值值和運(yùn)運(yùn)算符符的組組合。。簡(jiǎn)單單的表表達(dá)式式可以以是一一個(gè)常常量、、函數(shù)數(shù)、列列名、、變量量和子子查詢?cè)???煽梢杂糜眠\(yùn)算算符將將兩個(gè)個(gè)或更更多的的簡(jiǎn)單單表達(dá)達(dá)式連連接起起來組組成復(fù)復(fù)雜的的表達(dá)達(dá)式。。PL/SQL運(yùn)算算符符包包括括::算算數(shù)數(shù)運(yùn)運(yùn)算算符符、、位位運(yùn)運(yùn)算算符符、、比比較較運(yùn)運(yùn)算算符符、、邏邏輯輯運(yùn)運(yùn)算算符符、、賦賦值值運(yùn)運(yùn)算算符符、、字字符符串串連連接接符符和和一一元元運(yùn)運(yùn)算算符符。。運(yùn)算算符符1.算術(shù)術(shù)運(yùn)運(yùn)算算符符算術(shù)術(shù)運(yùn)運(yùn)算算符符用用于于執(zhí)執(zhí)行行數(shù)數(shù)字字型型表表達(dá)達(dá)式式的的算算術(shù)術(shù)運(yùn)運(yùn)算算。。在在PL/SQL中支持的的算術(shù)運(yùn)運(yùn)算及其其說明如如下所示示。+(加),,加法或或正號(hào)。。-(減),,減法或或負(fù)號(hào)。。*(乘)),乘法法運(yùn)算。。/(除),,除法運(yùn)運(yùn)算。運(yùn)算符2.比較運(yùn)算算符比較運(yùn)算算用來比比較兩個(gè)個(gè)表達(dá)式式的大小小。在PL/SQL中可以支支持的比比較運(yùn)算算符主要要包括以以下幾種種。>,大于。。=,等于。。<,小于。。>=,大于或或等于。。<=,小于或或等于。。<>(!=),不等等于運(yùn)算符3.邏輯運(yùn)算算符邏輯運(yùn)算算符用來來對(duì)邏輯輯條件進(jìn)進(jìn)行測(cè)試試,以獲獲得其真真實(shí)情況況。它與與比較運(yùn)運(yùn)算符一一樣,根根據(jù)測(cè)試試結(jié)果返返回布爾爾值true、false、null。邏輯運(yùn)運(yùn)算符有有and、or、not、between、like等,具體體的在查查詢一章章中已詳詳細(xì)講解解。運(yùn)算符4.字符串連連接符字符竄連連接連接接符“||”用于實(shí)實(shí)現(xiàn)字符符串之間間的連接接操作,,如圖所所示。運(yùn)算符5.賦值運(yùn)算算符在PL/SQL中,賦值值運(yùn)算符符為“:=”,即將將表達(dá)式式的值賦賦給一個(gè)個(gè)變量。?!臼纠?2-4】聲明一個(gè)個(gè)變量,,并為該該變量賦賦值為““confidence”。運(yùn)算符6.運(yùn)算符的的優(yōu)先級(jí)級(jí)Oracle中的運(yùn)算算符具有有不同的的優(yōu)先級(jí)級(jí)。同一一個(gè)表達(dá)達(dá)式中包包含不同同的運(yùn)算算符時(shí),,運(yùn)算符符的優(yōu)先先級(jí)決定定了表達(dá)達(dá)式的計(jì)計(jì)算和比比較操作作的順序序。Oracle中各種運(yùn)算算符的優(yōu)先先級(jí)的順序序如下所示示。括號(hào),()正、負(fù)運(yùn)算算,+、-乘、除運(yùn)算算,*、/加、減、字字符連接運(yùn)運(yùn)算,+、-、||比較運(yùn)算,,=、>,<,>=,<=,<>(!=)邏輯非運(yùn)算算,not邏輯與運(yùn)算算,andall、any、between、in、like、or、some等運(yùn)運(yùn)算算賦值值運(yùn)運(yùn)算算,,:=運(yùn)算算符符在進(jìn)進(jìn)行行數(shù)數(shù)據(jù)據(jù)查查詢?cè)儠r(shí)時(shí),,經(jīng)經(jīng)常常需需要要對(duì)對(duì)查查詢?cè)兊降降牡臄?shù)數(shù)據(jù)據(jù)進(jìn)進(jìn)行行再再次次計(jì)計(jì)算算處處理理。。PL/SQL中允允許許直直接接在在select子句句中中使使用用計(jì)計(jì)算算列列,,計(jì)計(jì)算算列列是是通通過過某某些些列列的的數(shù)數(shù)據(jù)據(jù)進(jìn)進(jìn)行行演演算算得得來來的的結(jié)結(jié)果果。。【示例例12-5】】結(jié)合合order_items數(shù)據(jù)據(jù)表表,,計(jì)計(jì)算算unit_price打9折之之后后的的值值。。表達(dá)達(dá)式式數(shù)據(jù)據(jù)庫庫中中經(jīng)經(jīng)常常使使用用表表達(dá)達(dá)式式來來計(jì)計(jì)算算結(jié)結(jié)果果,,尤尤其其在在變變量量和和常常量量的的使使用用過過程程中中。。在在前前面面已已經(jīng)經(jīng)接接觸觸過過表表達(dá)達(dá)式式的的使使用用,,它它和和普普通通編編程程語語言言的的表表達(dá)達(dá)式式類類似似。。本本小小節(jié)節(jié)系系統(tǒng)統(tǒng)地地介介紹紹表表達(dá)達(dá)式式的的類類型型以以及及如如何何使使用用表表達(dá)達(dá)式式。。1.表達(dá)達(dá)式式簡(jiǎn)簡(jiǎn)介介表達(dá)達(dá)式式不不能能獨(dú)獨(dú)立立構(gòu)構(gòu)成成語語句句,,表表達(dá)達(dá)式式的的結(jié)結(jié)果果是是一一個(gè)個(gè)值值。。如如果果不不給給這這個(gè)個(gè)值值安安排排一一個(gè)個(gè)存存放放的的位位置置,,則則表表達(dá)達(dá)式式本本身身毫毫無無意意義義。。通通常常,,表表達(dá)達(dá)式式作作為為賦賦值值語語句句的的一一部部分分出出現(xiàn)現(xiàn)在在賦賦值值值值運(yùn)運(yùn)算算符符的的右右邊邊,,或或者者作作為為函函數(shù)數(shù)的的參參數(shù)數(shù)等等。。表達(dá)式2.字符和數(shù)值表表達(dá)式(1)數(shù)值表達(dá)式式是由數(shù)值類類型的常量、、變量以及函函數(shù),由運(yùn)算算符連接而成成。在PL/SQL中,可以使用用的算數(shù)運(yùn)算算符有。加號(hào)+。減號(hào)-。乘號(hào)*。除號(hào)。(2)對(duì)于字符表表達(dá)式,唯一一的運(yùn)算符就就是“||”,它的作用用是把幾個(gè)字字符串連接在在一起,如表表達(dá)式:'wonderful'||'life'||'.'的值就相等于于'wonderfullife'。表達(dá)式3.關(guān)系表達(dá)式和和邏輯表達(dá)式式(1)關(guān)系表達(dá)式式是將字符或或數(shù)值用關(guān)系系運(yùn)算符連接接起來。(2)邏輯表達(dá)式式是由邏輯符符號(hào)和常量或或變量等組成成的表達(dá)式。。中變量、常量量的定義與使使用在PL/SQL塊中可可以定定義變變量、、常量量和數(shù)數(shù)據(jù)類類型,,這使使得PL/SQL塊對(duì)數(shù)數(shù)據(jù)的的處理理更加加靈活活。變變量、、常量量和類類型的的定義義放在在PL/SQL塊的變變量聲聲明部部分。。中變量量、常常量的的定義義與使使用1.變量和和常量量在PL/SQL程序運(yùn)運(yùn)行時(shí)時(shí),需需要定定義一一些變變量來來存放放一些些數(shù)據(jù)據(jù)。(1)定義義常量量定義常常量的的語句句格式式如圖圖所示示。中變量量、常常量的的定義義與使使用(2)定義義變量量變量的的定義義有兩兩種格格式,,如圖圖所示示?!臼纠?2-6】】定義了了一個(gè)個(gè)有關(guān)關(guān)住址址的變變量,,它是是變長長字符符型,,最大大長度度為20個(gè)字符符。中變量量、常常量的的定義義與使使用(3)變量初始始化變量在定義義時(shí)可以指指定默認(rèn)值值或初始值值,在PL/SQL塊的運(yùn)行過過程中還可可以為其賦賦值?!臼纠?2-7】】定義三個(gè)變變量id、name、hiredate,演示變量量的聲明、、賦值和輸輸出操作。。【示例12-8】】在上個(gè)示例例中,已經(jīng)經(jīng)了定義三三個(gè)變量,,id、name、hiredate,現(xiàn)在結(jié)合合%type屬性方法,,添加一個(gè)個(gè)變量是leavedate,該變量的的數(shù)據(jù)類型型與hiredate相同。12.2PL/SQL中定義類型型在前面簡(jiǎn)單單講解了type定義的數(shù)據(jù)據(jù)類型?,F(xiàn)現(xiàn)在講解常常用的自定定義類型::記錄類型型和集合類類型。它們們都是復(fù)合合數(shù)據(jù)類型型。記錄類型記錄類型允允許在一個(gè)個(gè)類型中包包含若干類類型不同的的字段,字字段類型可可以是基本本數(shù)據(jù)類型型,也可以以是另一個(gè)個(gè)復(fù)合數(shù)據(jù)據(jù)類型。記記錄類型的的定義格式式如圖所示示。記錄類型【示例12-9】】例如,要存存儲(chǔ)顧客的的信息,可可以定義一一個(gè)記錄類類型,包括括姓名、電電話、地址址、記錄日日期等字段段。【示例12-10】定義了兩個(gè)個(gè)shopper類型的變量量,分別表表示兩個(gè)顧顧客?!臼纠?2-11】在定義上述述類型和變變量的基礎(chǔ)礎(chǔ)上,為記記錄類型中中的字段賦賦值,并輸輸出結(jié)構(gòu)。?!臼纠?2-12】根據(jù)customers表的結(jié)構(gòu),,可以定義義記錄類型型變量cus。【示例12-13】根據(jù)記錄類類型變量cus,為customer_id、cust_first_name,city這三個(gè)字段段賦值,并并輸出其字字段值。集合類型記錄類型變變量中包含含若干類型型不同的數(shù)數(shù)據(jù),而集集合類型變變量中包含含多個(gè)相同同類型的元元素。要?jiǎng)?chuàng)創(chuàng)建一個(gè)集集合,先要要定義一個(gè)個(gè)集合類型型,然后再再定義該類類型的集合合變量。定定義集合類類型的語法法如圖所示示。集合類型【示例12-14】定義了一個(gè)個(gè)集合類型型,元素類類型是整數(shù)數(shù)?!臼纠?2-15】定義兩個(gè)集集合變量begins1和begins2,并分別調(diào)調(diào)用構(gòu)造函函數(shù)進(jìn)行初初始化,begins1中包含三個(gè)個(gè)元素,begins2是一個(gè)空集集合,不包包含任何元元素。集合類型類類似于面向向?qū)ο蠹夹g(shù)術(shù)中的類,,除了可以以使用構(gòu)造造函數(shù)外,,還有一些些方法可以以用來對(duì)集集合進(jìn)行操操作。集合類型集合的部分分方法如表表所示。方法功能extend(m,n)將集合的第n個(gè)元素追加到集合末尾共m次,如果不指定n,則追加m個(gè)空元素。若不指定m和n,則追加一個(gè)空元素count返回集合中當(dāng)前包含的元素的個(gè)數(shù)first返回第一個(gè)元素的下標(biāo)last返回最后一個(gè)元素的下標(biāo)next(n)返回第n個(gè)元素之后的元素的下標(biāo)prior(n)返回第n個(gè)元素之前的元素的下標(biāo)集合類型【示例12-16】結(jié)合兩個(gè)集集合變量begins1和begins2,演示集合合的使用方方法。除了上述定定義集合類類型的方法法,還有一一種方法,,其語法結(jié)結(jié)構(gòu)如圖所所示。集合類型【示例12-17】使用第二種種定義集合合類型方法法,定義兩兩個(gè)集合變變量begins3,并對(duì)該變變量進(jìn)行賦賦值。12.3Oracle中的條件控控制語句在Oracle數(shù)據(jù)庫中,,PL/SQL提供了豐富富的流控制制語句,用用來對(duì)程序序的執(zhí)行流流程進(jìn)行控控制。通過過控制語句句,我們可可以編寫更更復(fù)雜的PL/SQL塊。流控制制語句分為為兩類,即即條件判斷斷語句和循循環(huán)語句。。所謂條件件語句,就就是指程序序根據(jù)具體體條件表達(dá)達(dá)式來執(zhí)行行一組命令令的結(jié)構(gòu)。。Oracle中的條件語語句包括ifelse和casewhen兩種形式。。12.3.1流程控制——ifelse判斷if語句是一種種條件判斷斷語句,它它根據(jù)條件件判斷的結(jié)結(jié)果執(zhí)行不不同的分支支語句。if語句的語法法結(jié)構(gòu)如圖圖所示。流程控制——ifelse判斷三種if語句的流程程圖如圖所所示?!臼纠?2-18】在表customersnew中存儲(chǔ)了有有關(guān)顧客信信息的記錄錄。流程控制——ifelse判斷1.if...結(jié)構(gòu)這是if語句中最簡(jiǎn)簡(jiǎn)單的結(jié)構(gòu)構(gòu)方式,它它只有一個(gè)個(gè)if語句,如果果給定的表表達(dá)式不成成立,那么么將繼續(xù)向向下執(zhí)行。?!臼纠?2-19】現(xiàn)欲統(tǒng)計(jì)表表customersnew中,列status是“gold”的顧客信信息,要求求輸出統(tǒng)計(jì)計(jì)結(jié)果,如如果存在貴貴賓顧客,,則輸出““本公司有有擁有貴賓賓會(huì)員卡的的顧客”,,結(jié)合使用用if...then語句。流程控制——ifelse判斷2.ifelse結(jié)構(gòu)該類型的表表達(dá)式不是是選A就是選B。該結(jié)構(gòu)表表示要么執(zhí)執(zhí)行if后面的語句句,要么執(zhí)執(zhí)行else后面的語句句,是二選選一的模式式。該結(jié)構(gòu)構(gòu)執(zhí)行完畢畢后,程序序會(huì)繼續(xù)向向后執(zhí)行。?!臼纠?2-20】參考上一一個(gè)示例例,現(xiàn)欲欲統(tǒng)計(jì)表表customersnew中,列status是“gold”的顧客客信息,,要求輸輸出統(tǒng)計(jì)計(jì)結(jié)果,,如果存存在貴賓賓顧客,,則輸出出“本公公司有擁擁有貴賓賓會(huì)員卡卡的顧客客”;如如果不存存在,則則輸出““本公司司沒人擁擁有貴賓賓會(huì)員卡卡”,結(jié)結(jié)合使用用if...else語句。流程控制制——ifelse判斷3.ifelsif結(jié)構(gòu)該結(jié)構(gòu)是是前面兩兩種使用用方式的的綜合,,它可以以提供多多個(gè)if條件選擇擇,當(dāng)程程序執(zhí)行行到該結(jié)結(jié)構(gòu)部分分時(shí),它它會(huì)對(duì)每每一個(gè)條條件進(jìn)行行判斷,,一旦條條件為真真,程序序會(huì)執(zhí)行行相應(yīng)的的語句,,而后繼繼續(xù)判斷斷下一個(gè)個(gè)條件,,直到所所有條件件判斷完完成。該該結(jié)構(gòu)執(zhí)執(zhí)行完畢畢后,程程序會(huì)繼繼續(xù)向后后執(zhí)行。?!臼纠?2-21】當(dāng)需要進(jìn)進(jìn)行判斷斷的情況況多于一一種時(shí),,可以利利用elsif。12.3.2流程控制制——casewhen分支case語句與if語句類似似,也是是根據(jù)條條件選擇擇對(duì)應(yīng)的的語句執(zhí)執(zhí)行。但但是case結(jié)構(gòu)用于于多條件件分支結(jié)結(jié)構(gòu),可可以完成成計(jì)算多多個(gè)條件件并為每每個(gè)條件件返回單單個(gè)值。??梢允故沽鞒炭乜刂聘蛹忧逦?。。case結(jié)構(gòu)的主主要流程程圖如圖圖所示。。流程控制制——casewhen分支1.簡(jiǎn)單case語句它給出一一個(gè)表達(dá)達(dá)式,并并把表達(dá)達(dá)式同提提供的幾幾個(gè)可預(yù)預(yù)見的結(jié)結(jié)果做比比較,若若與可預(yù)預(yù)見結(jié)果果相匹配配,則執(zhí)執(zhí)行對(duì)應(yīng)應(yīng)的語句句序列,,如圖所所示。流程控制制——casewhen分支2.搜索式case語句它會(huì)提供供多個(gè)布布爾表達(dá)達(dá)式,然然后選擇擇第一個(gè)個(gè)為true表達(dá)式,,執(zhí)行對(duì)對(duì)應(yīng)的腳腳本,其其語法結(jié)結(jié)構(gòu)如圖圖所示。。流程控制制——casewhen分支【示例12-22】表customersnew中,列status有“gold”、“Silver”、“Platinum”三種情情況,利利用顧客客編號(hào),,結(jié)合case語句,輸輸出對(duì)應(yīng)應(yīng)的的顧顧客status類型,““gold”對(duì)應(yīng)貴貴賓卡會(huì)會(huì)員、““Silver”對(duì)應(yīng)銀銀卡會(huì)員員、“Platinum”對(duì)應(yīng)金金卡會(huì)員員。【示例12-23】使用搜索索式case語句的方方式進(jìn)行行改寫上上一個(gè)示示例12-22。【示例12-24】在表order_items中存儲(chǔ)了了有關(guān)訂訂單產(chǎn)品品的記錄錄信息。。使用搜搜索式case語句的方方式,在在數(shù)據(jù)表表order_items中,要求求根據(jù)order_id得到的對(duì)對(duì)應(yīng)的價(jià)價(jià)格unit_price,判斷價(jià)價(jià)格屬于于哪個(gè)范范圍并給給出輸出出提示。。12.4Oracle中的循環(huán)環(huán)語句所謂循環(huán)環(huán)語句,,即指程程序按照照指定的的邏輯條條件循環(huán)環(huán)執(zhí)行一一組命令令的語句句。Oracle中的循環(huán)環(huán)語句包包括三種種方式::無條件件循環(huán)、、while循環(huán)和for循環(huán)。12.4.1無條件循循環(huán)Oracle中,可以以使用loop語句對(duì)數(shù)數(shù)據(jù)進(jìn)行行循環(huán)處處理,利利用該語語句可以以循環(huán)執(zhí)執(zhí)行指定定的語句句序列。。其使用用語法如如圖所示示。無條件循循環(huán)無條件循循環(huán)在循循環(huán)開始始時(shí),不不指定循循環(huán)條件件,但是是必須在在循環(huán)內(nèi)內(nèi)部指定定跳出循循環(huán)的條條件,否否則,該該循環(huán)將將一直執(zhí)執(zhí)行,造造成死循循環(huán),loop循環(huán)語句句的基本本流程如如圖所示示。無條件循循環(huán)【示例12-26】可以利用用無條件件循環(huán)輸輸出customersnew表中,顧顧客編號(hào)號(hào)在101~112范圍之間間的所有有顧客姓姓名?!臼纠?2-27】可以利用用exitwhen形式跳出出loop循環(huán)。12.4.2while循環(huán)while循環(huán)與基
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年精神病的護(hù)理
- 家裝工程協(xié)議模板
- 花店飲品蛋糕創(chuàng)業(yè)計(jì)劃
- 旅行社油漆翻新合同范本
- 綠色DIY蛋糕創(chuàng)業(yè)計(jì)劃書
- 政府采購合同范本指南
- 2024洛陽市第一職業(yè)中等專業(yè)學(xué)校工作人員招聘考試及答案
- 2024甘南縣職業(yè)教育中心學(xué)校工作人員招聘考試及答案
- 2024滄州渤海中等專業(yè)學(xué)校工作人員招聘考試及答案
- 公園綠化石材供應(yīng)合同
- 云南天安化工有限公司67.5萬噸(P2O5)年濕法磷酸初級(jí)凈化研發(fā)及應(yīng)用環(huán)境影響報(bào)告書
- 基于PLC的小區(qū)排水控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- DB43-T 1712-2019 銀行業(yè)金融機(jī)構(gòu)智能預(yù)警系統(tǒng)安全防范要求
- 2023年云南省接受軍轉(zhuǎn)干部安置考試試題
- 初三英語試卷分析失分原因和改進(jìn)措施
- 關(guān)于在生產(chǎn)過程中物料流轉(zhuǎn)的交接和管理規(guī)定
- 2022年高考真題及答案解析《歷史、地理、政治》(湖北卷)
- 高中數(shù)學(xué)人教A版空間幾何體(省一等獎(jiǎng))
- 把未來點(diǎn)亮歌詞打印版
- 急性白血病急性髓系白血病課件
- 寫字樓能耗評(píng)估和節(jié)能降耗措施
評(píng)論
0/150
提交評(píng)論