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