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
代碼...
引發應用程序異常