婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > oracle中 procedure(存儲過程)和function(函數)本質區別

oracle中 procedure(存儲過程)和function(函數)本質區別

熱門標簽:愛客外呼系統怎么樣 山東crm外呼系統軟件 百度地圖標注途經點 哈爾濱電話機器人銷售招聘 開發外呼系統 地圖標注養老院 圖吧網站地圖標注 慧營銷crm外呼系統丹丹 哪個400外呼系統好

 Oracle function里面是可以允許有DML語句的,但是不能在查詢的時候使用。 

我們常用的function如:

select max(a) from table ; 

這種調用方式是不能執行帶有DML的FUNCTION的。 

但是如果不用在SQL里面是可以有的

比如 dbms_output.put_line(func(...));  

如果函數里面采用自治事務,是可以有DML 的。

什么是“自治事務”:

自治事務是可以在其他事務中調用的獨立事務。

自治事務可以使事務離開調用事務的上下文執行SQL操作、提交或回滾其他操作并返回到調用事務的上下文然后繼續調用事務。 

自治事務調用后,事務完全與調用它的主事務獨立。

不會看到任何主事務尚未提交的改變、不會共享主事務的鎖或資源。自治事務的改變在自治事務提交后可以被其他事務可見。

自治事務可以調用其他自治事務,嵌套的層數沒有限制。 

 Oracle FUNCTION與PROCEDURE的最大區別小結

 1、標識符不同。函數的標識符為FUNCTION,過程為:PROCEDURE。

2、函數中一般不用變量形參,用函數名直接返回函數值;而過程如有返回值,則必須用變量形參返回。

3、過程無類型,不能給過程名賦值;函數有類型,最終要將函數值傳送給函數名。

4、函數在定義時一定要進行函數的類型說明,過程則不進行過程的類型說明。

5、調用方式不同。函數的調用出現在表達式中,過程調用,由獨立的過程調用語句來完成。

6、過程一般會被設計成求若干個運算結果,完成一系列的數據處理,或與計算無關的各種操作;而函數往往只為了求得一個函數值

function 可以使用在表達式中 x := func();procedure不能

function 可以做為表達式 select func() from dual;procedure 不能

function 不能BEGIN func();END;;procedure 可以

下圖說明它們之間的區別:

以上所述是小編給大家介紹的oracle中 procedure(存儲過程)和function(函數)本質區別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • Oracle 存儲過程加密方法
  • oracle 存儲過程加密的方法
  • oracle下加密存儲過程的方法
  • Oracle存儲過程和存儲函數創建方法(詳解)
  • Oracle存儲過程及調用
  • Oracle中instr和substr存儲過程詳解
  • windows中oracle存儲過程加密的實例代碼

標簽:開封 青島 周口 和田 固原 承德 武漢 甘肅

巨人網絡通訊聲明:本文標題《oracle中 procedure(存儲過程)和function(函數)本質區別》,本文關鍵詞  oracle,中,procedure,存儲,過程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle中 procedure(存儲過程)和function(函數)本質區別》相關的同類信息!
  • 本頁收集關于oracle中 procedure(存儲過程)和function(函數)本質區別的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 平陆县| 嘉义县| 兴宁市| 亳州市| 二连浩特市| 宣恩县| 若羌县| 哈密市| 敖汉旗| 博客| 鲁甸县| 本溪市| 攀枝花市| 鲁山县| 兴山县| 玉环县| 克拉玛依市| 瓦房店市| 哈密市| 类乌齐县| 靖边县| 东乡县| 昌吉市| 广河县| 句容市| 望谟县| 濉溪县| 荥经县| 枞阳县| 鄢陵县| 台南县| 新巴尔虎右旗| 康定县| 定西市| 德化县| 西盟| 洪洞县| 曲阜市| 望江县| 本溪市| 万盛区|