亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Oracle存儲過程和自定義函數

難度初級
時長 1小時33分
學習人數
綜合評分9.83
105人評價 查看評價
9.9 內容實用
9.9 簡潔易懂
9.7 邏輯清晰
  • https://img1.sycdn.imooc.com//5d0f97cd000176a403250261.jpg

    https://img1.sycdn.imooc.com//5d0f97cd000188aa01950224.jpg

    以不帶參數的存儲過程為例

    查看全部
  • 數據庫對象:表、視圖、索引、序列、同義詞、存儲過程、存儲函數

    ? ? ? ? ? ? ? ? ? ?完成不同的作用

    存儲過程/函數:存儲在數據庫中供所有用戶調用的子程序(PLSQL構成)

    相同點:完成特定功能的程序

    區別:是否用return語句返回值(存儲函數有return返回值)

    查看全部
  • out參數中使用光標

    申明結構

    包頭

    包體

    查看全部
  • 程序調用,指定返回值類型? OracleTypes.

    查看全部
  • java訪問數據庫

    查看全部
    0 采集 收起 來源:概述

    2019-05-19

  • 過程和函數都可以通過ot指定一個輸出參數,

    查看全部
    0 采集 收起 來源:[Oracle] out參數

    2019-05-19

  • 存儲函數方式

    不推薦遠程調試

    reture number

    as

    begin

    return

    end

    預控 nvl(xx,o)


    查看全部
  • 帶參數的存儲過程

    輸入參數 in? ?輸出參數out

    在存儲過程中可以卸commit和rollcax,但是存儲過程作為子程序,一般不在其中寫,調用時統一提交或回滾


    查看全部
  • 創建時檢查同名過程? or repalce? 可作為修改使用

    存儲過程無返回值? 存儲函數無返回值

    編寫好后運行編譯

    兩種執行方式? exec? ?和plcql 通過begin和end


    查看全部
  • ----注意:一般情況下,返回值只有一個,用存儲函數;否則,當沒有返回值,或者返回值有多個,則使用存儲過程

    in和out參數(輸入輸出參數)

    ----out參數:查詢某個員工的姓名 月薪和職位

    create or replace procedure queryempinform(eno in number,pename out varchar2,psal out number,pjob out varchar2)

    as

    begin

    ---得到該員工的姓名 月薪和職位

    select ename,empjob into pename,psal,pjob from emp where empno=eno;

    end;

    /


    輸出參數可以用作返回值一樣返回給調用的客戶端


    查看全部
    0 采集 收起 來源:[Oracle] out參數

    2019-03-17

  • 存儲函數

    函數為一命名的存儲程序,可帶參數,并返回一計算值。

    函數和過程的結構類似,但必須有一個return子句,用于返回函數值

    ---注意:當一個表達式包含null值,往往會導致得不到正確的結果,或者沒有結果

    ? ? 所以最好的做法是使用nvl函數將空值以0代替

    --查詢某個員工的年收入

    create or replace function queryempincome(eno in number)

    return number

    as

    ?psal emp.sal%type;

    ?pcomm emp.comm%type;

    begin

    ?---得到該員工的月薪和獎金

    ?select sal,comm into psal,pcomm from emp where empno=eno;

    ?

    ?--直接返回年收入

    ?return psal*12+nvl(pcomm,0);

    end;

    /


    查看全部
  • 帶參數的存儲過程

    舉例:為指定的員工漲100元的工資,打印漲前和漲后的工資

    如果帶參,需要指定是輸入參數還是輸出參數


    create or replace procedure raisesalary(eno number)

    as

    ?---定義一個變量保存漲前的薪水

    ?psal emp.sal%type;

    begin

    ?---得到員工漲前的薪水

    ?select sal into psal from emp where empno=eno;

    ?---給該員工漲100

    ?update emp set sal=sal+100 where empno=eno;

    ?

    ?---需不需要commit?

    ?---注意:一般不在存儲過程或者存儲函數中 commit和rollback

    ?

    ?---打印漲前和漲后的工資

    ?dbms_output.put_line('漲前:'||psal||'漲后:'||(psal+100));

    end;

    /


    一般在調用存儲過程或者函數的時候再commit,這樣可以保證所有執行是在同一個事物中進行的

    如:

    begin

    raisesalary(7839);

    raisesalary(7566);

    commit;

    end;

    /


    查看全部
  • 創建和使用存儲過程

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

    語法:

    create [or replace] PROCEDURE 過程名(參數列表) AS?

    ????plsql子程序體;

    /*

    調用存儲過程有兩種方式:

    1.exec sayHelloworld

    2.調用兩次這個存儲過程

    begin

    sayHelloworld();

    sayHelloworld();

    end;

    /

    */

    create or replace procedure sayHelloworld

    as ---相當于declare說明部分,如果沒有,可以不寫

    begin

    dbms_output.put_line('Hello World');

    end;

    /


    end;

    /


    查看全部
  • 數據庫對象

    存儲過程、存儲函數、表、視圖、索引、序列、同義詞

    存儲過程和存儲函數

    指存儲在數據庫中供所有程序調用的子程序叫存儲過程、存儲函數

    ????存儲過程和存儲函數的相同點:完成特定功能的程序

    存儲過程和存儲函數的區別:是否用return語句返回值,存儲函數沒有return返回語句

    查看全部
  • 1.java程序調用存儲函數: {call 存儲過程名稱 (args1,args2。。。。)} 2.callableStatement call: call.prepareCall(sql) call.setInt(1,value) call.registerOutParameter(2,OracleTypes.NUMBER) call.getString(1,變量名)
    查看全部

舉報

0/150
提交
取消
課程須知
小伙伴們,學習本門課程需要具備PL/SQL基礎,可以移步《Oracle數據庫開發必備利器之PL/SQL基礎》課程。除此以外,在課程中涉及到存儲過程和存儲函數在Java項目中的應用,因此需要小伙伴們具備Java基礎并熟悉JDBC。
老師告訴你能學到什么?
1、存儲過程和存儲函數的創建和調用 2、存儲過程和存儲函數在Java項目中的應用 3、如何在應用程序中訪問包下的存儲過程

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!