標籤:
1.一般過程
create or replace procedure p1
as
begin
dbms_output.put_line(‘Hello World‘);
end;
--調用
call p1();
2.接收參數
create or replace procedure p2
(p_name varchar,p_age in int)
as
v_id int;
begin
select max(id) into v_id from stud;
v_id := v_id + 1;
insert into stud values(v_id,p_name,p_age);
end;
--調用:
call p2(‘Alex‘,56);
3.輸出類型的參數
create or replace procedure p3
(p_name varchar,p_age in int,v_id out int,v_cnt out int)
as
begin
select max(id) into v_id from stud;
v_id := v_id + 1;
--寫入資料
select count(*) into v_cnt from stud;
end;
--調用擁有傳回值的必須用一個PL/SQL塊
declare
vid int;
vcnt int;
begin
p3(‘Jerry‘,25,vid,vcnt);
dbms_output.put_line(‘id is:‘ || vid || ‘數量:‘ || vcnt);
end;
4.輸入與輸出是同一個變數
create or replace procedure p4
(p_name varchar,p_age in out int,v_cnt out int)
as
v_id int;
begin
select max(id) into v_id from stud;
v_id := v_id + 1;
--寫入資料
insert into stud values(v_id,P_name,p_age);
--再設定p_age的值為id的值
p_age := v_id;
--查詢表中的行數
select count(*) into v_cnt from stud;
end;
--調用
declare
vid int := 99;
vcnt int;
begin
p4(‘Sam‘,vid,vcnt);
dbms_output.put_line(‘id is:‘ || vid || ‘數量:‘ || vcnt);
end;
Oracle 預存程序