成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle存儲(chǔ)過(guò)程和自定義函數(shù)

存儲(chǔ) 存儲(chǔ)軟件
存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)是指存儲(chǔ)在數(shù)據(jù)庫(kù)中供所有用戶程序調(diào)用的子程序叫存儲(chǔ)過(guò)程、存儲(chǔ)函數(shù)。異同點(diǎn):存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的相同點(diǎn):完成特定功能的程序。存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的區(qū)別:是否用return語(yǔ)句返回值。

概述

存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)是指存儲(chǔ)在數(shù)據(jù)庫(kù)中供所有用戶程序調(diào)用的子程序叫存儲(chǔ)過(guò)程、存儲(chǔ)函數(shù)。

異同點(diǎn): 

  • 存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的相同點(diǎn):完成特定功能的程序。
  • 存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的區(qū)別:是否用return語(yǔ)句返回值。

存儲(chǔ)過(guò)程的創(chuàng)建和調(diào)用

***個(gè)存儲(chǔ)過(guò)程: 打印hello world

  1. createorreplace procedure sayhelloword 
  2. as 
  3.  --說(shuō)明部分,as一定要寫(xiě) 
  4. begin 
  5.    dbms_output.put_line('Hello World'); 
  6. end

[[222712]]

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

1.execsayhelloworld()

2.2

  1. -- 調(diào)用兩次 
  2. begin 
  3.    sayhelloworld(); 
  4.    sayhelloworld(); 
  5. end

oracle 帶參數(shù)的存儲(chǔ)過(guò)程

  1. --創(chuàng)建一個(gè)帶參數(shù)的存儲(chǔ)過(guò)程 
  2. --給指定的員工漲100塊錢的工資,并且打印漲前后漲后的薪水 
  3. createorreplace procedure raisesalary(enoinnumber)--in這是一個(gè)輸入?yún)?shù) 
  4. as 
  5.  --定義一個(gè)變量保存漲前的薪水 
  6.    psal emp.sal%type; 
  7. begin 
  8.  --得到員工漲前的薪水 
  9.    selectsalintopsalfromempwhereempno=eno; 
  10.  --給該員工漲100塊錢 
  11.    update emp setsal=sal+100whereempno=eno; 
  12.  --一般,這里不需要commit!也不需要rollback 
  13.  --注意:一般不在存儲(chǔ)過(guò)程或者存儲(chǔ)函數(shù)中,commit和rollback 
  14.  --打印 
  15.    dbms_output.put_line('漲前:'||psal||',漲后:'||(psal+100)); 
  16. end
  17. --調(diào)用: 
  18. begin 
  19.   raisesalary(7839); 
  20.   raisesalary(7566); 
  21. end

如何調(diào)試存儲(chǔ)過(guò)程

  1. 調(diào)試存儲(chǔ)過(guò)程***放到Oracle數(shù)據(jù)庫(kù)所在的系統(tǒng)或虛擬機(jī)上,解壓SQL developer ,雙擊運(yùn)行。
  2. 為了確保存儲(chǔ)過(guò)程或函數(shù)是可調(diào)試的,右鍵“以編譯并進(jìn)行調(diào)試”,點(diǎn)擊紅色按鈕“調(diào)試”
  3. 利用已寫(xiě)好的調(diào)用函數(shù)進(jìn)行調(diào)試。
  4. 給調(diào)試賬戶授權(quán)
  1. grant DEBUG CONNECT SESSION ,DEBUG ANY PROCEDURE to scott; 

存儲(chǔ)函數(shù)

函數(shù)的定義

  是一個(gè)命名的存儲(chǔ)程序,可帶參數(shù),并返回一個(gè)計(jì)算值。必須有return 子句,用于返回函數(shù)值。

創(chuàng)建存儲(chǔ)函數(shù)語(yǔ)法

  1.  create or replace function 函數(shù)名(參數(shù)列表) 
  2.   return 函數(shù)值類型 
  3.   as 
  4.   begin 
  5.     PLSQL子程序體; 
  6.   end
  7. ​ 

注意 表達(dá)式中某個(gè)字段為空時(shí),表達(dá)式返回值為空。為防止含有表達(dá)式的返回值錯(cuò)誤,在可能為空的字段上加上NVL(字段名,0)。

--查詢某個(gè)員工的年收入

  1. --查詢某個(gè)員工的年收入 
  2. create or replace function queryemp_income(eno in number) 
  3. return number 
  4. as  
  5.     --定義變量接收薪水和獎(jiǎng)金 
  6.     p_sal emp.sal%type; 
  7.     p_comm emp.comm%type; 
  8. begin 
  9.   select sal,comm into p_sal,p_comm from emp where empno=eno; 
  10.   --nvl為遇空函數(shù),如果p_comm為空則返回0 
  11.   return nvl(p_comm,0)+p_sal*12; 
  12. end
  13. ​ 

out 參數(shù)

存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)都可以有多個(gè)輸入(in)和輸出參數(shù)(out),都可以通過(guò)out參數(shù)實(shí)現(xiàn)返回多個(gè)值。

  1. -- out參數(shù):查詢某個(gè)員工姓名、月薪和職位 
  2. -- 原則: 如果只有一個(gè)返回值,用存儲(chǔ)函數(shù);否則,就用存儲(chǔ)過(guò)程。 
  3. create or replace procedure queryempinfor(eno in number,pename out varchar2, 
  4.   psal out number,pjob out varchar2) 
  5. as  
  6. begin 
  7.    -- 得到該員工的姓名、月薪和職位 
  8.     select ename,sal,empjob into pename,psal,pjob from emp where empno=eno; 
  9. end
  10. ​ 

在 out 參數(shù)中訪問(wèn)光標(biāo)

申明包結(jié)構(gòu)

  • 包頭(申明)
  • 包體(實(shí)現(xiàn))

案例

  1. -- 查詢某個(gè)部門中所有員工的所有信息  //ref(reference引用) cursor(光標(biāo)) 
  2. #包頭 
  3. create or replace package mypackage as 
  4. type empcursor is ref cursor
  5. procedure queryEmpList(dno in number,empList out empcursor); 
  6. end mypackage; 
  7. #包體 
  8. create or replace package body mypackage as 
  9. procedure queryEmpList(dno in number,empList out empcursor) as 
  10.  begin 
  11.    open empList for select * from emp where deptno=dno; 
  12.  end queryEmpList; 
  13. end mypackage; 
  14. ***********包體需要實(shí)現(xiàn)包頭中聲明的所有方法********************* 
  15. ​ 

在應(yīng)用程序中訪問(wèn)

在java應(yīng)用程序中訪問(wèn)存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)以及訪問(wèn)包下的存儲(chǔ)過(guò)程,可以查看java API文檔。

 

責(zé)任編輯:武曉燕 來(lái)源: 序猿不姓程
相關(guān)推薦

2010-09-06 15:41:34

SQL函數(shù)存儲(chǔ)過(guò)程

2010-10-25 16:05:07

oracle自定義函數(shù)

2011-05-17 13:32:04

oracle

2010-04-28 12:33:36

Oracle自定義函數(shù)

2010-09-14 16:47:23

SQL自定義函數(shù)

2009-07-06 16:20:50

JSP自定義標(biāo)簽

2010-09-14 16:59:39

SQL自定義函數(shù)

2010-10-25 13:48:26

Oracle過(guò)程

2010-05-11 13:16:21

Unix awk

2023-02-28 11:29:09

存儲(chǔ)函數(shù)MySQL

2017-03-16 14:37:05

LinuxShell函數(shù)

2015-02-12 15:33:43

微信SDK

2011-07-04 14:08:02

C++

2021-07-15 16:41:21

Swift查詢函數(shù)

2009-08-12 14:53:50

C#類型轉(zhuǎn)換函數(shù)

2023-10-31 09:10:39

2010-11-29 11:27:08

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

2010-09-09 09:49:18

SQL函數(shù)存儲(chǔ)過(guò)程

2015-02-12 15:38:26

微信SDK

2023-06-28 08:05:46

場(chǎng)景vue3自定義
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品18久久久 | 国产九九九 | 成人精品一区二区三区中文字幕 | 国产精品乱码一区二区三区 | 亚洲欧美在线观看 | www.嫩草 | 欧美日韩在线一区二区 | 精品欧美一区二区三区久久久 | 免费看一级毛片 | 国产中文视频 | 亚洲一区久久久 | 国产日韩欧美二区 | 特级毛片| 亚洲精品www | 国产一区精品在线 | 水蜜桃久久夜色精品一区 | 91原创视频 | 色综合色综合 | 黄色在线观看 | 国产精品中文字幕在线 | 日韩在线视频免费观看 | 中文字幕日韩欧美一区二区三区 | 久热中文字幕 | 国产亚洲区 | 国产精品成人一区二区三区夜夜夜 | 成人在线视频一区 | 国产精品日韩欧美一区二区 | 国产免费让你躁在线视频 | 五十女人一级毛片 | 91精品久久久久久久久久小网站 | 成人在线播放网址 | 超碰在线97国产 | 国产高清精品在线 | 午夜爱爱毛片xxxx视频免费看 | 亚洲另类视频 | av国产精品毛片一区二区小说 | 欧产日产国产精品国产 | 免费一区二区三区 | 国产精品99久久久久久宅男 | 99久久久久 | 欧美国产精品一区二区三区 |