PL/SQL入門教程目錄
Oracle PL/SQL入門教程,PL/SQL語法格式/回圈陳述句/條件判斷/例外處理
文章目錄
- PL/SQL入門教程目錄
- 一、PL/SQL簡介
- 1.PL/SQL簡介
- 2.PL/SQL要點
- 3.PL/SQL 塊
- 二、 PL/SQL 語法和格式:
- 1.語法格式:
- 2.宣告變數
- 3.宣告變數時賦值
- 4.PL/SQL中的輸出函式
- 5.PL/SQL格式舉例:
- 6.圖1:輸出操作結果顯示
- 7.結合SQL陳述句使用into為變數賦值
- 三、兩個特殊的欄位型別
- 1.%type指定的欄位的型別
- 2.%rowtype 代表表中的整行的資料
- 三、常用的判斷陳述句
- 1.if else條件判斷陳述句
- 2.case when 陳述句
- 四、常用的回圈陳述句
- 1.exit when 退出回圈:
- 2.while回圈:
- 3.for in 回圈:
- 五、例外
- 1.什么是例外?
- 2.例外的三種型別:
- 3.例外處理程式的語法:
- 4.常見的預定義例外:
- 圖:預定義例外
- 5.用戶自定義例外
- 6.圖:滿足自定義條件時觸發自定義例外
- 結束
一、PL/SQL簡介
1.PL/SQL簡介
1.PL/SQl是程序語言PL與結構化語言SQL結合而成的編程語言2.PL/SQL引擎駐留在Oracle服務器中
3.該引擎接收PL/SQL塊并對其進行編譯
2.PL/SQL要點
PL/SQL是一種強型別的編程語言,所有的變數都必須在宣告之后才可以使用,
變數都要求在declare部分進行宣告,對于變數名稱有如下規定:
1.變數名可以是字母數字下劃線$#等組成
2.所有的變數名稱要求以字母開頭,不能是Oracle中的關鍵字
3.變數的長度最多只能為30個字符
4.為了提高PL/SQL的可讀性,所有變數采用"v_變數名"進行定義
3.PL/SQL 塊
PL/SQL是構成PL/SQL的基本組成單元,
將邏輯上相關的宣告和陳述句組合在一起,
PL/SQL分為三個部分:
二、 PL/SQL 語法和格式:
1.語法格式:
declare
宣告部分
begin
可執行部分
exception
例外處理部分
end;
2.宣告變數
變數名 資料型別
3.宣告變數時賦值
變數名 資料型別 := 值 ; 注意這里的 : 不可省略
4.PL/SQL中的輸出函式
dbms_output.put_line( 要輸出的值或者字串,字串使用 ’ ’ 包裹);
5.PL/SQL格式舉例:
declare
v_name varchar2(20) :='我是誰?';
begin
-- 輸出操作
dbms_output.put_line('pl/sql的輸出操作' || v_name); PL/SQL 中使用||連接(相當于+)
end;
6.圖1:輸出操作結果顯示

7.結合SQL陳述句使用into為變數賦值
declare
v_name varchar2(20);
begin
-- 通過SQL陳述句和into關鍵字為變數賦值
select uname into v_name from user_book where userid=9999;
dbms_output.put_line(v_name); -- 列印
end;
三、兩個特殊的欄位型別
1.%type指定的欄位的型別
使用方式:
變數名 表名.屬性名%type;
declare
v_name user_book.uname%type;
v_id user_book.userid%type;
begin
-- 為欄位賦值
select user_book.uname,user_book.userid into v_name,v_id
from user_book
where user_book.userid=9999;
-- 輸出看結果
dbms_output.put_line(v_id || v_name);
end;
2.%rowtype 代表表中的整行的資料
使用方式:
變數名 表名.屬性名%rowtype;
declare
v_row user_book%rowtype;
begin
-- 賦值
select * into v_row from user_book where user_book.userid=9999;
-- 輸出行中的資料: 注意此時必須手動將行內的所有欄位寫入輸出陳述句,否則會報錯
dbms_output.put_line(v_row.uname||v_row.userid||v_row.urole );
end;
三、常用的判斷陳述句
1.if else條件判斷陳述句
if 條件1
then 滿足條件1時執行的陳述句
else 條件2
then 滿足條件2時執行的陳述句
2.case when 陳述句
case when 條件1
then 滿足條件1時執行的代碼
when 條件2
then 滿足條件2時執行的代碼
when 條件3
then 滿足條件3時執行的代碼
else 以上條件都不滿足時執行的代碼
end case;
四、常用的回圈陳述句
1.exit when 退出回圈:
格式:
loop 回圈執行的陳述句塊; exit when回圈結束條件; 步進陳述句; end loop;
例如:
declare
v_i int := 0; -- 宣告變數
begin
loop
dbms_output.put_line(v_i); -- 回圈塊: 列印v_i
exit when v_i >= 10; -- 結束條件
v_i := v_i+1; -- 步進陳述句
end loop;
end;
結果:

2.while回圈:
while 回圈結束條件
loop
回圈體;
步進陳述句;
end loop;
例如:
declare
v_i int := 0; -- 宣告變數
begin
while exit when v_i >= 10; -- 結束條件
loop
dbms_output.put_line(v_i); -- 回圈塊: 列印v_i
v_i := v_i+1; -- 步進陳述句
end loop;
end;
3.for in 回圈:
for 回圈索引變數 in [recerse] – reverse: 反向
回圈區域下限…回圈區域上線
loop
回圈陳述句塊;
end loop ;
例如: 倒序列印1到10(即10到1)
declare
begin
for i in reverse 1..10 -- 從1到10 正序
loop
dbms_output.put_line(i); -- 列印i
end loop;
end;
結果如圖:

五、例外
1.什么是例外?
在運行例外時出現的錯誤叫做例外
發生例外后,陳述句將停止執行,控制權轉移到PL/SQL塊的例外處理部分
2.例外的三種型別:
預定義例外:當PL/SQL程式違反Oracle規則或超越系統限制時隱式引發;
用戶不需要在程式中定義;
非預定義例外:當PL/SQL程式違反Oracle規則或超越系統限制時引發;
用戶需要在程式中定義;
用戶定義例外:需要用戶在程式中定義,顯式的在程式中引發;
3.例外處理程式的語法:
begin
常規代碼塊;
exception
when 例外條件1滿足 then 例外條件1滿足時執行的代碼
when 例外條件2滿足 then 例外條件2滿足時執行的代碼
when others then 都不滿足時執行的代碼
end;
4.常見的預定義例外:
-- 資料過多: too_many_rows
-- 查詢的資料不存在: no_data_found
例如:
declare
v_error exception;
v_name user_book.uname%type;
begin
select uname into v_name from user_book where user_book.userid=100000; -- 此時的userid是不存在的
end;
圖:預定義例外

5.用戶自定義例外
declare
declare
v_error exception;
v_name user_book.uname%type;
begin
select uname into v_name from user_book where user_book.userid=1001;
if v_name = '張三' then -- 如果滿足條件則回傳v_error
raise v_error;
end if;
exception
when v_error then -- 當出現此例外的時候觸發
dbms_output.put_line('原來是張三啊,拋個例外給你吧');
end;
6.圖:滿足自定義條件時觸發自定義例外

結束
其他部分小白會陸續更新噢,老板麻煩點個贊再走嘛~~~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/184966.html
標籤:其他
