久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

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

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

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

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

      存儲(chǔ)過(guò)程

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

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

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

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

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

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

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

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

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

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

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

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

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

      存儲(chǔ)過(guò)程

      函數(shù)

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

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

      程序頭部聲明用PROCEDURE

      程序頭部聲明用FUNCTION

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

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

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

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

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

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

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

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

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

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

      oracle中存儲(chǔ)過(guò)程與函數(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ǔ)過(guò)程

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

      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ǔ)過(guò)程

      調(diào)用語(yǔ)法:

      1)、exec <過(guò)程名>;

      2)、execute <過(guò)程名>;

      3)、在PL/SQL語(yǔ)句塊中直接調(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ǔ)過(guò)程名表示調(diào)用,傳遞參數(shù)值用=>) end;

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

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

      推薦教程:《Oracle教程》

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