亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

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

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

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

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

    存儲過程

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

    優(yōu) 點:

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

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

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

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

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

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

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

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

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

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

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

    存儲過程

    函數(shù)

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

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

    程序頭部聲明用PROCEDURE

    程序頭部聲明用FUNCTION

    程序頭部聲明時不需要返回類型

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

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

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

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

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

    可以通過OUT/IN OUT返回零個或多個值

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

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

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

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

    實際舉例

    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、存儲過程

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

    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)用存儲過程

    調(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)存儲過程名表示調(diào)用,傳遞參數(shù)值用=>) end;

    3、本地存儲過程

    在PL/SQL中還可以在declare塊中建立本地存儲過程,而不使用關(guān)鍵字create,其目的是:不用將存儲過程存儲在數(shù)據(jù)庫中,避免更改數(shù)據(jù)庫時帶來的麻煩,其主要的使用場景是,臨時使用某個存儲過程,而不是在以后要重復(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)存儲過程名) exception     ... end proc_demo;

    推薦教程:《Oracle教程》

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