oracle儲存過程demo分享

2021-12-30 07:22:36 字數 1817 閱讀 1521

--1.定義儲存過程

--定義

create or replace procedure proc01

as n int;         --注意定義變數後面要加分號

begin

select count(*) into n from emp;

dbms_output.put_line('員工表中有'||n||'條記錄!');

end;

--呼叫

declare

begin

proc01();

end;

--2.帶引數的儲存過程

--定義

create or replace procedure p3(j1 varchar2)

ascursor c1 is select * from emp where job=j1;

emper emp%rowtype;

begin

open c1;  

loop

fetch c1 into emper;

exit when c1%notfound;

dbms_output.put_line(emper.ename);

end loop;

close c1;

end;

--呼叫

declare

begin

p3('clerk');

end;

--帶有輸入,輸出引數的過程

create or replace procedure p4(a in int,b in int,c out int)

asbegin

c:=0;           --給c賦初始值

for i in a..b

loop

c:=c+i;       --累加

end loop;

end;

--呼叫

declare

a int:=1;

b int:=100;

c int;

begin

p4(a,b,c);      --呼叫

dbms_output.put_line(c);

end;

--求給定數字的階乘(帶輸入和輸出引數)

create or replace procedure p5(a in int,b out int)

asbegin

b:=1;

for i in 1..a   --a的階乘

loop

b:=b*i;

end loop;

end;

--呼叫

declare

a int:=5;

b int;

begin

p5(a,b);

dbms_output.put_line(b);

end;

--求給定數字的階乘(又是輸入又是輸出引數)(借助了b這個中間引數)

create or replace procedure p6(a in out int)

as       b int;

begin

b:=a;  --把a的值賦值給b

a:=1;  --將a的值修改為1

for i in 1..b      --迴圈

loop

a:=a*i;

end loop;

end;

--呼叫

declare

a int:=6;

begin

p6(a);

dbms_output.put_line(a);

end;

oracle 儲存過程demo

個人留作筆記 create or replace procedure ykt exception p jyrq in varchar2 p jysj in varchar2,p kh in varchar2,p wid in varchar2,p xh in varchar2 p jyje in n...

oracle 儲存過程demo

需求 我們需要從另外乙個資料庫每天定時備份啟用的資料到本地資料庫 create orreplace procedure p dealer active report pv date in varchar2 is 統計日啟用報表 pn id number 主鍵 pv createdate varcha...

儲存過程簡單demo

二 儲存過程demo 儲存過程是儲存在資料庫中執行某種特定功能的程式,其中包含一條或多餘sql語句。儲存過程是一段sql語句集,在編寫完成這段sql語句集,編譯一次並以可執行形式儲存,呼叫它時在資料庫記憶體空間中執行。儲存過程呼叫快速而有效。可執行 會自動快取並在使用者之間共享。這降低了記憶體需求和...