日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle pl/sql之oracle存储过程

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。