程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle存儲過程及函數,oracle存儲過程

Oracle存儲過程及函數,oracle存儲過程

編輯:Oracle教程

Oracle存儲過程及函數,oracle存儲過程


1.在Oracle中,存儲過程包括三部分組成:定義部分、執行部分、和異常處理部分(即例外)

eg1:輸入員工編號,查詢員工的姓名和薪資

create or repalce  procedure mypro2 is

declare --定義部分,定義變量和常量等,變量定義一般以V_開頭,常量定義一般以C_開頭

v_ename varchar2(20);

v_sal number(7,2);

begin--執行部分

select ename,sal into v_ename,v_sal from emp where empno=&no;

dbms_output.put_line('員工的姓名是:'||v_ename||'工資是'||v_sal);

exception--異常處理部分

when no_data_found then

dbms_output.put_line('您輸入的員工編號不存在');

end;

eg2:帶參數的存儲過程

--輸入員工的姓名和新的薪資,根據姓名改薪資

create or replace procedure mypro2(pename varchar2,psal number) is

begin

update emp set sal=psal where ename=pename;

end;

存儲過程的調用方法:

a:exec mypro1()或者call mypro1();

b:exec mypro1('SCOTT',1200)或者call mypro1('SCOTT',1200);

2.函數

函數必須有返回值的

結構如下:根據雇員名稱求年薪

create or repalce function myfun1(fename varchar2) return number is yearsal nunber;

begin

select sal*12+nvl(comm,0) into yearsal from emp where ename=fename;

return yearsal;

end;

函數的調用方法:

SQL> var ys number;
SQL> call myf1('SCOTT') into:ys;

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved