欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          oracle中存儲(chǔ)過程與函數(shù)的區(qū)別是什么

          區(qū)別:1、存儲(chǔ)過程用于在數(shù)據(jù)庫中完成特定的操作或任務(wù),而函數(shù)用于特定數(shù)據(jù);2、存儲(chǔ)過程的程序頭部聲明用PROCEDURE,聲明時(shí)不需要返回類型,而函數(shù)的程序頭部聲明用FUNCTION,聲明時(shí)要描述返回類型。

          oracle中存儲(chǔ)過程與函數(shù)的區(qū)別是什么

          本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。

          存儲(chǔ)過程

          存儲(chǔ)過程(Stored Procedure )是一組為了完成特定功能的SQL 語句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫中。用戶通過指定存儲(chǔ)過程的名字并給出參數(shù)(如果該存儲(chǔ)過程帶有參數(shù))來執(zhí)行它。存儲(chǔ)過程是數(shù)據(jù)庫中的一個(gè)重要對象,任何一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫應(yīng)用程序都應(yīng)該用到存儲(chǔ)過程。 存儲(chǔ)過程是由流控制和SQL 語句書寫的過程,這個(gè)過程經(jīng)編譯和優(yōu)化后存儲(chǔ)在數(shù)據(jù)庫服務(wù)器中,應(yīng)用程序使用時(shí)只要調(diào)用即可。在ORACLE 中,若干個(gè)有聯(lián)系的過程可以組合在一起構(gòu)成程序包。

          優(yōu) 點(diǎn):

          1、存儲(chǔ)過程只在創(chuàng)造時(shí)進(jìn)行編譯,以后每次執(zhí)行存儲(chǔ)過程都不需再重新編譯,而一般SQL語句每執(zhí)行一次就編譯一次,所以使用存儲(chǔ)過程可提高數(shù)據(jù)庫執(zhí)行速度。

          2、當(dāng)對數(shù)據(jù)庫進(jìn)行復(fù)雜操作時(shí)(如對多個(gè)表進(jìn)行Update、Insert、Query、Delete時(shí)),可將此復(fù)雜操作用存儲(chǔ)過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用。

          3、存儲(chǔ)過程可以重復(fù)使用,可減少數(shù)據(jù)庫開發(fā)人員的工作量。

          4、安全性高,可設(shè)定只有某用戶才具有對指定存儲(chǔ)過程的使用權(quán)。

          存儲(chǔ)過程與函數(shù)的區(qū)別

          二者最大的區(qū)別是:

          1).函數(shù)(function)總是向調(diào)用者返回?cái)?shù)據(jù),并且一般只返回一個(gè)值;2).存儲(chǔ)過程(procedure)不直接返回?cái)?shù)據(jù),但可以改變輸出參數(shù)的值,這可以近似看作能返回值,且存儲(chǔ)過程輸出參數(shù)的值個(gè)數(shù)沒有限制。

          從一般應(yīng)用上來看,如果不需要返回值或者需要多個(gè)返回值,使用存儲(chǔ)過程,如果只用一個(gè)返回值,就使用函數(shù)。

          2、function定義中只能有DDL(如select等)語句;procedure中主要是DML語句(對數(shù)據(jù)庫進(jìn)行復(fù)雜操作時(shí),如對多個(gè)表進(jìn)行Update、Insert、Query、Delete時(shí))。

          如果想要使用select的結(jié)果集,則要使用游標(biāo)

          存儲(chǔ)過程與函數(shù)的區(qū)別

          存儲(chǔ)過程

          函數(shù)

          用于在數(shù)據(jù)庫中完成特定的操作或任務(wù)(如插入、刪除等)

          用于特定數(shù)據(jù)(如查詢返回值)

          程序頭部聲明用PROCEDURE

          程序頭部聲明用FUNCTION

          程序頭部聲明時(shí)不需要返回類型

          程序頭部聲明時(shí)要描述返回類型,而且PL/SQL塊至少要包括一個(gè)有效的RETURN語句

          可以使用IN/OUT/IN OUT3種參數(shù)模式

          可以使用IN/OUT/IN OUT3種參數(shù)模式

          可以作為獨(dú)立的PL/SQL語句執(zhí)行

          不能獨(dú)立執(zhí)行,必須作為表達(dá)式的一部分調(diào)用

          可以通過OUT/IN OUT返回零個(gè)或多個(gè)值

          對過RETURN語句返回一個(gè)值,且該值與聲明部分一致,也可以通過OUT類型的參數(shù)帶出變量

          SQL語句(DML或SELECT)中不可以調(diào)用存儲(chǔ)過程

          SQL語句(DML或SELECT)中可以調(diào)用函數(shù)

          oracle中存儲(chǔ)過程與函數(shù)的區(qū)別是什么

          實(shí)際舉例

          1、函數(shù)

          (1)創(chuàng)建函數(shù)

          create or replace function get_salary(     dept_no number,     emp_count **out** number)     return number IS     v_sum number;begin     ...exception    ...end get_salary

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

          declare      v_num number;     v_sum number;begin     ...(這里應(yīng)該出現(xiàn)函數(shù)名表示調(diào)用)end

          2、存儲(chǔ)過程

          (1)創(chuàng)建存儲(chǔ)過程

          create or replace procedure pro_demo(     dept_no number default 10,     sal_sum out number,     emp_count out number) IS begin     ... exception     ... end proc_demo;

          (2)調(diào)用存儲(chǔ)過程

          調(diào)用語法:

          1)、exec <過程名>;

          2)、execute <過程名>;

          3)、在PL/SQL語句塊中直接調(diào)用。

          例如:

          declare     v_num number;     v_sum number(8,2); begin     procedure pro_demo(dept_no=>1,sal_num=>900,emp_count=>10)(這里出現(xiàn)存儲(chǔ)過程名表示調(diào)用,傳遞參數(shù)值用=>) end;

          3、本地存儲(chǔ)過程

          在PL/SQL中還可以在declare塊中建立本地存儲(chǔ)過程,而不使用關(guān)鍵字create,其目的是:不用將存儲(chǔ)過程存儲(chǔ)在數(shù)據(jù)庫中,避免更改數(shù)據(jù)庫時(shí)帶來的麻煩,其主要的使用場景是,臨時(shí)使用某個(gè)存儲(chǔ)過程,而不是在以后要重復(fù)多次使用。

          例子:

          declare     v_num number;     v_sum number(8,2); procedure proc_demo(     dept_no number default 10,     sal_sum out number,     emp_count out number) IS begin     ...(這里不用出現(xiàn)存儲(chǔ)過程名) exception     ... end proc_demo;

          推薦教程:《Oracle教程》

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號