幾個簡單的儲存過程--輸出語句
=========================第一個例子(本行不能作為儲存過程註釋和塊部分,只是一個說明)==
--一個簡單輸出字串的pl/sql語句
create or replace procedure sp_pro3 is
begin
--Hello World!必須用單引號,
--是字元,不是字串
dbms_output.put_line('Hello World!');
end;
/
set serveroutput on;--設定可以輸出
exec sp_spro3;--i呼叫儲存過程
===第二個例子(有定義部分和執行部分),這個儲存過程是基於Oracle中自帶的emp(員工表進行的)==
--有定義和執行部分的儲存過程
declare
--定義變數
v_ename varchar2(5);
begin
--執行部分,&是一個地址符表示使用者輸入員工工號給no後就將該值傳遞給empno了
select ename into v_ename from emp where empno=&no;
--在控制檯上輸出使用者名稱
dbms_output.put_line('使用者名稱:'||v_ename);
end;
==第三個例子輸入工號,輸出員工姓名和薪資(此處限定返回的結果集只是一條,如果是多條的話,就必須使用遊標了)==
--有定義和執行部分的儲存過程
--輸入員工工號,就可以從emp表中查出員工姓名和員工薪資
--並輸出查詢到的員工姓名和薪資
declare
--定義部分
v_ename varchar2(5);
v_sal number(7,2);
begin
--執行部分
select ename,sal into v_ename,v_sal from emp where empno=&no;
--輸出員工姓名和薪資到控制檯
dbms_output.put_line('員工姓名:'||v_ename||',員工薪資:'||v_sal);
end;
==第四部分,關於例外處理,有時候,操作如果沒有按正常的控制結構走,出現了例外,而我們剛好有一些特殊的業務邏輯放到例外中處理很合適=
--有定義、執行部分及例外處理部分的儲存過程
--輸入員工工號,就可以從emp表中查出員工姓名和員工薪資
--並輸出查詢到的員工姓名和薪資
declare
--定義部分
v_ename varchar2(5);
v_sal number(7,2);
begin
--執行部分
select ename,sal into v_ename,v_sal from emp where empno=&no;
--輸出員工姓名和薪資到控制檯
dbms_output.put_line('員工姓名:'||v_ename||',員工薪資:'||v_sal);
--異常處理部分
exception
--如果找不到資料
when no_data_found then
--就輸出哥們,你輸入的編號不對!
dbms_output.put_line('哥們,你輸入的編號不對!');
end;