-
為什么要把數(shù)組叫做光標(biāo)呢
查看全部 -
沒(méi)有提示信息貌似也沒(méi)有什么問(wèn)題吧
查看全部 -
11行是很精華的一列,就是有點(diǎn)難以理解
查看全部 -
into語(yǔ)句的順序要按照前面查詢語(yǔ)句的順序來(lái)寫(xiě)
查看全部 -
引用型變量,引用你的類型作為我的類型
查看全部 -
命令式的語(yǔ)言
查看全部 -
分支和循環(huán)就是過(guò)程處理能力嗎
查看全部 -
要有一個(gè)結(jié)果集
查看全部 -
自定義例外:PL/SQL中可以把它當(dāng)做變量來(lái)處理,所以需要declare語(yǔ)句后定義自定義例外,類型是exception,自定義例外需要使用raise拋出,捕獲的方式就和系統(tǒng)方式一樣。
舉例:查詢50號(hào)部門(mén)的員工姓名,但是這里沒(méi)有部門(mén)號(hào)為50的部門(mén),所以這里自定義一個(gè)例外。需要注意的地方有raise拋出異常。
注意:這里需要注意當(dāng)自定義異常執(zhí)行后,close?cemp這行代碼就不會(huì)執(zhí)行了,直接跳轉(zhuǎn)到exception這行代碼執(zhí)行了,這里這樣寫(xiě)是沒(méi)有問(wèn)題的,oracle有一個(gè)機(jī)制,當(dāng)異常退出時(shí),會(huì)檢查程序中有沒(méi)有關(guān)閉的資源,它會(huì)自動(dòng)啟動(dòng)一個(gè)進(jìn)程,這個(gè)進(jìn)程就會(huì)把系統(tǒng)遺留的垃圾和資源進(jìn)行清理,所以close?cemp最終會(huì)被這個(gè)pmon調(diào)用。
查看全部 -
value_error例外:當(dāng)算數(shù)錯(cuò)誤,例如負(fù)數(shù)開(kāi)平方?;蛘哳愋娃D(zhuǎn)換錯(cuò)誤,字符串賦值給數(shù)值型。會(huì)產(chǎn)生該例外。
舉例:將一個(gè)字符賦值給數(shù)值型變量。
注意:如圖,將字符類型的數(shù)字賦值給數(shù)值型變量不會(huì)報(bào)錯(cuò)。
查看全部 -
zero_divide例外:除零例外。
舉例:如圖。注意:這里的then后面相當(dāng)于一個(gè)大括號(hào),后面可以是多個(gè)語(yǔ)句。這里舉例演示。
查看全部 -
Too_many_rows:該例外表示select語(yǔ)句查詢后,將多個(gè)記錄賦值給一個(gè)變量。
舉例:如圖,查詢時(shí)匹配了多個(gè)行,捕獲進(jìn)行提示。
查看全部 -
No_data_found例外:表示一條select語(yǔ)句沒(méi)有查詢到數(shù)據(jù)時(shí)候就會(huì)產(chǎn)生這個(gè)例外。
舉例:產(chǎn)生這個(gè)例外并進(jìn)行捕獲,輸出提示。
例外的捕獲:如果產(chǎn)生例外,就可以通過(guò)exception捕獲例外。,至于何種例外,可以通過(guò)when來(lái)判斷,then表示符合時(shí)執(zhí)行的操作,如果有多個(gè)例外,可以定義多個(gè)when來(lái)進(jìn)行捕獲。如圖
注意:在PL/SQL中要捕獲所有的例外,不要往外拋,一旦往外拋,就意味著拋給了數(shù)據(jù)庫(kù),這樣數(shù)據(jù)庫(kù)可能會(huì)運(yùn)行出錯(cuò)。所以這里可以通過(guò)在最后一個(gè)when后面使用others,表示除了上面的例外,其他的都會(huì)被該語(yǔ)句處理。
查看全部 -
例外定義:程序設(shè)計(jì)語(yǔ)言的一種功能,用來(lái)增強(qiáng)程序(PL/SQL程序)的健壯性和容錯(cuò)性。
可以通過(guò)查看oracle文檔了解例外的使用。
PL/SQL中的例外可以分為兩種:
1、Internally?defined——》系統(tǒng)例外,這種例外是oracle事先定義好的。
舉例:這里介紹如圖所示幾種系統(tǒng)例外。這里的資源等待超時(shí)的產(chǎn)生場(chǎng)景會(huì)在分布式數(shù)據(jù)庫(kù)情況下發(fā)生。
分布式數(shù)據(jù)庫(kù):兩個(gè)數(shù)據(jù)庫(kù)物理上不是一個(gè)數(shù)據(jù)庫(kù),但是邏輯上是一個(gè)數(shù)據(jù)庫(kù),其中一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)另一個(gè)數(shù)據(jù)庫(kù),但是由于某些原因一直沒(méi)有返回?cái)?shù)據(jù),此時(shí)就會(huì)有一個(gè)時(shí)間,超過(guò)這個(gè)時(shí)間,就會(huì)產(chǎn)生這個(gè)Timeout_on_resource這個(gè)例外。
2、user?defined——》自定義例外,我們自己定義一個(gè)例外。
查看全部 -
帶參數(shù)的光標(biāo)語(yǔ)法:如圖,如果多個(gè)參數(shù),逗號(hào)進(jìn)行分隔。
舉例:查詢某一部門(mén)的員工姓名。如圖。它和不帶光標(biāo)的區(qū)別在于1、定義不同。2、打開(kāi)不同(打開(kāi)光標(biāo)時(shí),注意:需要傳入一個(gè)參數(shù))。這里傳入的10代表部門(mén)號(hào)。
注意:光標(biāo)%notfound的原理是判斷是否從光標(biāo)中fetch數(shù)據(jù)到變量中,如果fetch數(shù)據(jù)到變量中了,就返回false,如果沒(méi)有fetch到數(shù)據(jù)到變量中,就返回true。
查看全部
舉報(bào)