PL SQL儲存過程

2021-06-06 08:19:46 字數 2483 閱讀 1081

or replace 建立或替換,如果存在就替換,不存在就建立

create

or replace procedure p

is
cursor c
is
select * from dept2 for

update;

begin
for row_record in c loop
if (row_record.deptno = 30) then
update dept2 set dname = substr(dname, 0, length(dname) - 3) where

current

of c;

end

if;

end loop;
end;
exec p;
begin
p;
end;
--帶參儲存過程
--in 輸入引數,不帶in out 預設輸入引數
--out 輸出引數
--in

out 同時帶的是輸入輸入引數

create

or replace procedure p2(

a in number,
b number,
s_result out number,
s_temp in

out number

)
is
begin
if (a > b) then
s_result := a;
else
s_result := b;
end

if;

s_temp := s_temp + 3;
end;
--呼叫儲存過程
declare
v_a number := 4;
v_b number := 6;
v_result number;
v_temp number := 5;
begin
p2(v_a, v_b, v_result, v_temp);
dbms_output.put_line(v_a);
dbms_output.put_line(v_b);
dbms_output.put_line(v_result);
dbms_output.put_line(v_temp);
end;
---刪除乙個表的過程
create

or replace procedure drop_table(tname varchar2)

as
total int := 0;
begin
select

count(*) into total from user_tables

where table_name = upper(tname);
if total >= 1 then
execute

immediate

'drop table '||tname; --此處必須用動態sql

end

if;

end;
select * from user_tables;
--遞迴儲存過程
create

or replace procedure pro_emp(sempno emp.empno%type, slevel integer)

is
cursor c is

select * from emp where mgr = sempno;

prefixstr varchar(255);
begin
for i in 1..slevel loop
prefixstr := prefixstr || '----';
end loop;
for row_data in c loop
dbms_output.put_line(prefixstr || row_data.ename);
pro_emp(row_data.empno, slevel + 1);
end loop;
end;
select * from emp;
begin
pro_emp(7839, 0);
end;

pl sql 儲存過程

在這段時間的開發中資料庫用的是oracle以前用的都是mssql它們的儲存過程的寫法還有一點不一樣,所以花了一天的時間看了看!以下是我做的乙個小例子!create table mytesttable id number,name varchar2 10 insert into mytesttable...

PL SQL 儲存過程

1 游標的設計開發 什麼是游標,為什麼用游標,怎樣使用游標 2 儲存過程 儲存過程的建立,引數使用,儲存過程的執行 3 儲存函式的設計 函式的建立,引數使用,函式的呼叫 4 包的設計與應用 什麼是包,包的建立及使用 儲存過程 建立語法 create or replace procedure proc...

PL SQL儲存過程

為什麼要建立儲存過程?儲存過程有什麼用?建立儲存過程就在硬碟上生成了乙個檔案,而不是像declare,只是在記憶體中存放,退出的時候就失去了相關操作.儲存過程把複雜的業務邏輯都放在塊中進行處理,讓外界呼叫時可以直接使用.不用第二次轉換.1.建立儲存過程的語法 create or replace pr...