**
PLSQL
常見寫法:select into語句可以在PLSQL中引入表數據,賦值給當前plsql聲明的變量。
■變量類型
屬性類型可以在不知道數據類型的情況下,自動引入表中數據的類型:
屬性引用類型:
表名.數據列名%type
屬性行記錄類型,記錄結果集一整行信息的行單位:
行變量 表名%rowtype
**
■異常處理
**
PLSQL也有類似於Java的異常處理,當數據操作不合法時及時暫停程序避免崩潰。以下僅從無該數據、返回多條數據兩種預定義異常爲例。
返回多條數據:
無該數據:
如果忘記在異常裏面寫邏輯也會報錯:
■條件判斷
■循環
plsql循環語句有純loop循環和混合了for、loop關鍵字的for循環,while和exit關鍵字分別指示’當‘和’退出‘。
循環數據溢出會報錯:
■遊標
select into只能做到單個數據返回,遊標用法可以彌補其不能返回結果集的缺憾。遊標常用於遍歷結果集,與循環掛鉤。
loop遊標:
for遊標:
相比之下,用法上,loop遊標比for遊標複雜得多,差別在於很多參數設置、綁定操作,for遊標可以自動補全。
存儲函數
存儲函數常常用於SQL語句中,很少作用於應用程序的編寫,被查詢語句調用,達到簡化SQL的目的。
存儲過程
和存儲函數的主要區別:
由於存儲過程無直接返回值,但可以有傳出參數。故可以將存儲過程分爲有無傳出參數兩類。以下是這兩類存儲過程的用法:
■無傳出參數的存儲過程
在jdbc上面的應用:
■有傳出參數的存儲過程
在jdbc上的應用:
觸發器
前置觸發器可以在事務提交之前更改修改值,是一種事前處理方式,後置觸發器比較聽話不能更改修改值,改什麼就是什麼,是一種事後的處理方式。
前置觸發器可以直接調用並修:new和:old僞列的值,而後置觸發器並不能,只能簡單調用不然報錯。
■前置觸發器
■後置觸發器