set serveroutput on; accept abc prompt '請輸入abc的值'; DECLARE a int:= &abc; BEGIN dbms_output.put_line(a); END;
查詢賦值舉例:
set serveroutput on; DECLARE str varchar2(20); BEGIN select ename into str from emp where empno='7369'; dbms_output.put_line(str); END;
流程控制語句。 PL/SQL的主要控制語句如下: 1.if...then elsif … then end if; 判斷if正確則執行then,否則執行else(elsif為嵌套判斷) 注意elsif,裡面少一下e. 2.Case var when … then when … then end 有邏輯的從數值中做出選擇 3.Loop exit end loop 循環控制,用判斷語句執行exit 4.Loop exit when … end loop 同上,當when為真時執行exit 5.while..loop end loop 當while為真時循環 6.for...in...loop end loop 已知循環次數的循環 因為流程控制比較多,在這裡就不一一舉實例了,寫幾個比較經典的程序給大家看一下。
********打印9*9乘法表********* for in..loop set serveroutput on; DECLARE i number; j number; BEGIN for i in 1..9 loop for j in 1..i loop dbms_output.put(i||'*'||j||'='||(i*j)||' '); end loop; dbms_output.put_line(''); end loop; END; while loop set serveroutput on; declare i number:=1; j number:=1; begin while i<10 loop while j<=i loop dbms_output.put(i||'*'||j||'='||(i*j)||' '); j:=j+1; end loop; i:=i+1; j:=1; dbms_output.put_line(''); end loop; end;
*********計算1+2+..+10的值********* loop exit & loop exit when set serveroutput on; declare i number:=1; i_sum number:=0; begin loop i_sum:=i_sum+i; i:=i+1; if i>10 then exit; end if; end loop; dbms_output.put(i_sum); dbms_output.put_line(''); end;
注意:put只是把輸出結果放入緩沖區,直到遇到put_line時才會輸出。所以只有put的時候,不會顯示i_sum的結果。 可以把 if i>10 then exit; end if; 換成exit when i>10;這樣就成為了loop ..exit when .. end loop 結構。
*********輸入一個字符,判斷是字母、數字還是其他字符**************** if then elsif else set serveroutput on; declare i_char varchar2(2); begin i_char:=&abc; if regexp_like(i_char,'^[a-z]$') then dbms_output.put_line('輸入的是字母'); elsif regexp_like(i_char,'^[0-9]$') then dbms_output.put_line('輸入的是數字'); else dbms_output.put_line('輸入的是其他字符'); end if; end; case when set serveroutput on; declare i_char varchar2(2); i_result varchar2(30); begin i_char:=&abc; i_result:= case when regexp_like(i_char,'^[a-z]$') then '輸入的是字母' when regexp_like(i_char,'^[0-9]$') then '輸入的是數字' else '輸入的是其他字符' end; dbms_output.put_line(i_result); end;
注意:在提示窗口中輸入的時候,字符串一定要加單引號,否則就會出錯,本人每次在這裡都要拌一下。 SQL語句 SQL語句就是數據庫查詢語句,比較簡單就不在這裡說了。 游標語句 二.異常部分。 數據庫中的異常跟java中的異常的機制和作用原理是一樣的,只是代碼和格式不一樣,數據庫中的異常分為三類:系統異常(預定義異常)、自定義異常以及引發應用程序異常。 系統異常 PL/SQL程序在運行過程中,可能會出現錯誤或異常現象 例如:無法建立到Oracle的連接或用0做除數。好的程序應該對可能發生的異常情況進行處理,異常處理代碼在EXCEPTION塊中實現 可以使用WHEN語句來定義異常。WHEN語句的使用方法如下: EXCEPTION WHEN <異常情況名> THEN <異常處理代碼> WHEN <異常情況名> THEN <異常處理代碼> ... WHEN OTHERS THEN <異常處理代碼> 常見的系統異常 自定義異常 當與一個異常錯誤相關的錯誤出現時,就會隱含觸發該異常錯誤。用戶定義的異常錯誤是通過顯式使用 RAISE 語句來觸發。當引發一個異常錯誤時,控制就轉向到 EXCEPTION塊異常錯誤部分,執行錯誤處理代碼。 對於這類異常情況的處理,步驟如下: 在PL/SQL 塊的定義部分定義異常情況: <異常名稱> exception; 在PL/SQL 塊的執行部分RAISE異常: RAISE <異常名稱>; 在PL/SQL 塊的異常情況處理部分對異常情況做出相應的處理。 WHEN <異常名稱> THEN 代碼... 引發應用程序異常