oracle儲存過程入門案例學習

2021-08-19 10:45:03 字數 2576 閱讀 6392

儲存過程個人理解:

儲存過程是一種程式設計的思想,它可以給sql語句加上各種規則從而達到自己特殊的需要,提公升sql語句的執行效率和增強資料庫的安全性。

--建立表

create table employee(

empno number(5) ,--員工編號

ename varchar2(20), --名稱

sal  number(10), --薪水

job varchar2(10) default 'clerk',--工種預設clerk

deptno number(10) --部門編號

--建立儲存過程

create or replace procedure add_employee(

eno number ,--員工編號

name varchar2, --名稱

salary  number, --薪水

job varchar2 default 'clerk',--工種預設clerk

dno number--部門編號)is

begin 

insert into add_employee 

(empno,ename,sal,job,deptno)values(eno,name,salary,job,dno);

end; 

--傳遞引數的三種方式

begin  

--按位置傳遞引數

add_employee(1111,'mary',2000,'manager',10);

--按名字傳遞引數

add_employee(dno=>10,name=>'mary',salary=>2000,eno=>2112,job=>'manager');

--混合方式傳遞引數

add_employee(3111,name=>'mary',salary=>2000,dno=>2112,job=>'manager');

end;

--刪除儲存過程

drop procedure add_employee;

--儲存過程的引數模式

--引數傳遞主要分為三種:in,out和in out,即輸入引數、輸出引數和輸入/輸出引數。預設情況下引數型別為in

--建立儲存過程

create or replace procedure queryemployee

(v_empno in employee.empno%type,

v_ename out employee.ename%type,

v_sal in out employee.sal%type)as

begin

select ename,sal into v_ename,v_sal

from employee

where empno=v_empno;

end;

--呼叫儲存過程

declare

v1 employee.ename%type;

v2 employee.sal%type;

begin

v2:=5000;

queryemployee(1111,v1,v2);

end;

--小案例理解in和out的區別

create or replace procedure p(

a pls_integer,--預設情況下為in

b in pls_integer,

c out pls_integer,

d in out number)is

begin 

if c is null then

dbms_output.put_line('null');-- dbms_output.put_line理解為列印資訊的方法

else

dbms_output.put_line(c);

end if;

dbms_output.put_line(d);

c:=a+10;

d:=10/b;

end;

declare

aa constant  pls_integer:=1;

bb pls_integer:=2;

cc pls_integer:=3;

dd pls_integer:=4;

begin

p(aa,bb,cc,dd);

dbms_output.put_line('after invoking procedure p:');

dbms_output.put_line('aa='||aa);--||號理解為字元連線符結果集為:aa=1(數字)

dbms_output.put_line('bb='||bb);

dbms_output.put_line('cc='||cc);

dbms_output.put_line('dd='||dd);

end;

--新建測試視窗 執行呼叫語句

Oracle儲存過程案例集合

注 這裡沒有使用replace函式 1 建立儲存過程 orreplace procedure pro testcom p string in varchar2,replace1 in varchar2,replace2 in varchar2 is p start number 1 從哪個位置開始擷...

oracle儲存過程入門

寫個簡單的儲存過程 選用scott的emp表。給員工漲工資,大於2000的漲50,大於1000的漲100,其他的漲150 create or replace procedure addsal employno varchar2 is increment number salary number be...

Oracle儲存過程入門

1.包中定義的儲存過程,必須在包體中實現 但包體中實現的儲存過程在包中可以不定義 2.儲存過程實現中,一旦有begin.end pro name 在begin與end之間必須有 塊。3.儲存過程實現中,如果過程沒有入參與出參列表,則直接寫過程名,沒有 4.在包頭與包體中宣告中包括以下幾種定義 包頭 ...