--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語句集,編譯一次並以可執行形式儲存,呼叫它時在資料庫記憶體空間中執行。儲存過程呼叫快速而有效。可執行 會自動快取並在使用者之間共享。這降低了記憶體需求和...