欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

oracle 存儲過程、函數(shù)和觸發(fā)器用法實例詳解

 更新時間:2020年02月20日 10:07:19   作者:懷素真  
這篇文章主要介紹了oracle 存儲過程、函數(shù)和觸發(fā)器用法,結(jié)合實例形式詳細分析了oralce 存儲過程、函數(shù)和觸發(fā)器具體功能、原理、定義、使用方法及相關操作注意事項,需要的朋友可以參考下

本文實例講述了oracle 存儲過程、函數(shù)和觸發(fā)器用法。分享給大家供大家參考,具體如下:

一、存儲過程和存儲函數(shù)

指存儲在數(shù)據(jù)庫中供所有用戶程序調(diào)用的子程序叫存儲過程、存儲函數(shù)。

創(chuàng)建存儲過程

用CREATE PROCEDURE命令建立存儲過程。

語法:

create [or replace] procedure 過程名(參數(shù)列表)
as
PLSQL子程序體;
--給指定員工漲工資
create procedure addSal(empid in number)
as
  psal emp.sal%type;
begin
  select sal into psal from emp where empno=empid;
  update emp set sal = sal * 1.1 where empno=empid;
  dbms_output.put_line(empid || '漲工資前' || psal || '漲工資后' || (psal * 1.1));
end;

調(diào)用存儲過程

--方法一
begin
addSal(7369);
end;
--方法二
exec addSal(7369);

存儲函數(shù)

函數(shù)為一命名的存儲程序,可帶參數(shù),并返回一計算值。函數(shù)和過程的結(jié)構(gòu)類似,但必須有一個return子句,用于返回函數(shù)值。函數(shù)說明要指定函數(shù)名,結(jié)果值的類型,以及參數(shù)類型等。
創(chuàng)建語法:

CREATE [OR REPLACE] FUNCTION 函數(shù)名 (參數(shù)列表)
RETURN 函數(shù)值類型
AS
PLSQL子程序體;

--查詢指定員工的年收入
create function queryEmpSal(empid in number)
return number
as
  psal emp.sal%type;
  pcomm emp.comm%type;
begin
  select sal,comm into psal,pcomm from emp where empno=empid;
  return (psal*12) + nvl(pcomm,0);
end;

函數(shù)的調(diào)用

declare
 psal number;
begin
 psal:=queryEmpSal(7369);
 dbms_output.put_line(psal);
end;

begin
 dbms_output.put_line(queryEmpSal(7369));
end;

過程和函數(shù)中的IN和OUT

一般來講,過程和函數(shù)的區(qū)別在于函數(shù)可以有一個返回值,而過程沒有返回值。
但過程和函數(shù)都可以通過out指定一個或多個輸出參數(shù)。我們可以利用out參數(shù),在過程和函數(shù)中實現(xiàn)返回多個值。
什么時候用存儲過程或函數(shù)?
原則:如果只有一個返回值,用存儲函數(shù),否則,就用存儲過程。

創(chuàng)建包和包體

什么是包和包體?
包是一組相關過程、函數(shù)、變量、常量、類型和游標等PL/SQL程序設計元素的組合。包具有面向?qū)ο笤O計的特點,是對這些PL/SQL程序設計元素的封裝。
包體是包定義部分的具體實現(xiàn)。
包由兩個部分組成:包定義和包主體。

--包定義
create [or replace] package 包名 as
[公有數(shù)據(jù)類型定義]
[公有游標聲明]
[公有變量、常量聲明]
[公有子程序聲明]
end 包名;

--包主體
create [or replace] package body 包名 as
[私有數(shù)據(jù)類型定義]
[私有變量、常量聲明]
[私有子程序聲明和定義]
[公有子程序定義]
begin
PL/SQL子程序體;
end 包名;

--創(chuàng)建mypackage包
create or replace package mypackage as
 procedure total(num1 in number, num2 in number, num3 out number);
end mypackage;

--mypackage包體
create or replace package body mypackage as
--計算累加和的total過程
procedure total(num1 in number, num2 in number, num3 out number) as
 tmp number := num1;
begin
 if num2 < num1 then num3 := 0;
 else num3 := tmp;
  loop
   exit when tmp > num2;
   tmp := tmp + 1;
   num3 := num3 + tmp;
  end loop;
 end if;
end total;

end mypackage;

(*注意:包定義和包體要分開創(chuàng)建)
調(diào)用包

declare
 num1 number;
begin
 mypackage.total(1, 5, num1);
 dbms_output.put_line(num1);
end;

更多關于Oracle相關內(nèi)容感興趣的讀者可查看本站專題:《Oracle常用函數(shù)匯總》、《Oracle日期與時間操作技巧總結(jié)》及《php+Oracle數(shù)據(jù)庫程序設計技巧總結(jié)

希望本文所述對大家Oracle數(shù)據(jù)庫程序設計有所幫助。

相關文章

  • 常用Oracle分析函數(shù)大全

    常用Oracle分析函數(shù)大全

    本文是小編日常手機整理的有關oracle分析函數(shù),oracle分析函數(shù)功能非常強大,工作也常用到,所以大家務必要掌握,對oracle分析函數(shù)知識感興趣的朋友一起看看吧
    2016-08-08
  • oracle跨庫查詢dblink的用法實例詳解

    oracle跨庫查詢dblink的用法實例詳解

    這篇文章主要介紹了oracle跨庫查詢dblink的用法,結(jié)合實例形式較為詳細的分析了Oracle中跨庫查詢dblink的創(chuàng)建、使用及刪除等相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • oracle 監(jiān)聽 lsnrctl 命令 (推薦)

    oracle 監(jiān)聽 lsnrctl 命令 (推薦)

    這篇文章主要介紹了oracle 監(jiān)聽 lsnrctl 命令 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • Oracle數(shù)據(jù)庫啟停命令示例

    Oracle數(shù)據(jù)庫啟停命令示例

    在windos下數(shù)據(jù)庫安裝過后,oracle數(shù)據(jù)庫會跟隨系統(tǒng)自啟動。在linux下需要手動設置oracle啟動,下面這篇文章主要給大家介紹了關于Oracle數(shù)據(jù)庫啟停命令的相關資料,需要的朋友可以參考下
    2023-06-06
  • 對學Oracle數(shù)據(jù)庫初學者的開場篇

    對學Oracle數(shù)據(jù)庫初學者的開場篇

    這篇文章主要介紹了對學Oracle數(shù)據(jù)庫初學者的開場篇,方便想學習oracle數(shù)據(jù)庫的朋友
    2015-05-05
  • oracle 身份證校驗函數(shù)的實例代碼

    oracle 身份證校驗函數(shù)的實例代碼

    這篇文章主要介紹了oracle 身份證校驗函數(shù),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • oracle中110個常用函數(shù)介紹

    oracle中110個常用函數(shù)介紹

    這篇文章主要介紹了oracle中110個常用函數(shù),方便大家編寫出更強大的sql語句,需要的朋友可以參考下
    2013-08-08
  • Oracle 實現(xiàn) 一個關鍵字 匹配多個 字段的方法

    Oracle 實現(xiàn) 一個關鍵字 匹配多個 字段的方法

    這篇文章主要介紹了Oracle 實現(xiàn) 一個關鍵字 匹配多個 字段的方法,本文給大家提供兩個方案,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • Oracle表空間的創(chuàng)建、使用、重命名與刪除方法

    Oracle表空間的創(chuàng)建、使用、重命名與刪除方法

    表空間是Oracle數(shù)據(jù)庫中的一個重要概念,它是一組物理文件,用于存儲數(shù)據(jù)庫對象,如表、索引等,在使用Oracle數(shù)據(jù)庫時,通常需要創(chuàng)建表空間來存放數(shù)據(jù),本文介紹了Oracle表空間的創(chuàng)建、使用、重命名與刪除方法
    2024-03-03
  • oracle查看編碼格式及修改方式

    oracle查看編碼格式及修改方式

    這篇文章主要介紹了oracle查看編碼格式及修改方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論