oracle pl/sql之oracle存储过程
? ? ? 存儲過程是一種命名pl/sql程序塊,它可以被賦予參數,存儲在數據庫中,可以被用戶調用。由于存儲過程是已編譯好的代碼,所以在調用的時候不必再次進行編譯,從而提高了程序的運行效率。另外使用存儲過程可以實現程序的模塊化設計
?
存儲過程的語法:
create [or replace] procedure procedure_name (parameter [{in| out}] ?data_type,
parameter [{in| out}] ?data_type....) ?
{is|as}
?begin
executable section;
exception
exception handlers;
end;
?
程序演示:
? ? ?寫一個存儲過程用來向emp表中插入一條數據
create of replace procedure my_procedure3 is
begin
insert into emp(empno,ename) values(9527,'星爺之唐伯虎');
end;
?
控制臺中調用存儲過程:
?exec 過程名(參數);
?
或者寫一個plsql語句塊
begin
過程名(參數);
end;
?
參數:
oracle 有三種參數模式in out和 in out in 表示用戶的輸入參數 程序演示: create or replace procedure my_procedure(in_no in number,in_name in varchar2) is
begin
insert into emp(empno,ename) values(in_no,in_name);
end;
?
out參數表示用戶的輸出
程序演示:
create or replace procedure my_pro(in_no in number,out_name out varchar2,out_sal out number) is
begin
select ename,sal into out_name,out_sal from emp where empno=in_no;
end;
?
在sqlplus中想得到帶有輸出的過程執行完后的值 方法1:寫匿名塊
declare
v_name emp.ename%type;
v_sal emp.sal%type;
begin
my_pro(7369,v_name,v_sal);
dbms_output.put_line( v_name);
dbms_output.put_line( v_sal);
end;
?注意:
in out同時具有in和out的特性,在過程中可以讀取和寫入類型參數?
?
轉載于:https://www.cnblogs.com/ztyy04126/p/4901203.html
總結
以上是生活随笔為你收集整理的oracle pl/sql之oracle存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Select-or-Die:灵活的 jQ
- 下一篇: 浅谈事务