Oracle 存儲過程創(chuàng)建和使用舉例
1.創(chuàng)建存儲過程
create or replace package pk_1 as //創(chuàng)建包的聲明
TYPE cur is ref cursor; //聲明一個指針
PRocedure p1(cr out cur);
end;
/
create or replace package body pk_1 as //創(chuàng)建包體
procedure p1(cr out cur) is
begin
open cr for select STATUS,table_name from dba_tables;
end;
end;
/
2.調用(在sqlplus中):
set serveroutput on //設置允許進行輸出操作
/
declare
cc pk_1.cur;
s varchar2(20);
t varchar2(30);
c11 number :=0; //變量c11一定要賦初值,不然將不能正常運算
begin
pk_1.p1(cc);
loop
fetch cc into s,t;
exit when cc%notfound;
c11 := c11 + 1;
dbms_output.put_line('status = ' || s || '; table_name = ' || t);
end loop;
close cc;
dbms_output.put_line(c11);
end;
/
3.對于不是返回一個結果集的存儲過程的調用
CREATE OR REPLACE PROCEDURE p1
(
parameter1 in number,
parameter2 out number
) is
value1 INTEGER :=0;
begin
select count(*) into value1 from dba_tables where table_name like '%t%';
parameter2 := value1;
end p1;
sqlplus 中運行procedure
第一種調用方式:
(1)set serveroutput on
declare
v_p_o_succeed varchar2;
begin
pr_jwry_info('a_p_i_date',v_p_o_succeed) ;
dbms_output.put_line(v_p_o_succeed);
end;
第二種調用方式:
(2) var cc varchar(20)
p1(1,:cc)
print cc;
新聞熱點
疑難解答
圖片精選