好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Oracle中的游標和函數詳解

Oracle中的游標和函數詳解

熱門標簽:百度地圖標注飯店位置怎么 上海網絡外呼系統 理財產品電銷機器人 百度地圖標注注解 南通電銷外呼系統哪家強 電話機器人那種好 外呼系統好點子 地圖標注的坐標點 區域地圖標注怎么設置

 Oracle中的游標和函數詳解

1.游標

游標是一種 PL/SQL 控制結構;可以對 SQL 語句的處理進行顯示控制,便于對表的行數據

逐條進行處理。 游標并不是一個數據庫對象,只是存留在內存中。

操作步驟:

   聲明游標
   打開游標

   取出結果,此時的結果取出的是一行數據

   關閉游標 到底那種類型可以把一行的數據都裝進來

   此時使用 ROWTYPE 類型,此類型表示可以把一行的數據都裝進來。 例如:查詢雇員編號為 7369 的信息(肯定是一行信息)。

例:查詢雇員編號為 7369 的信息(肯定是一行信息)。

DECLARE 
  eno emp.empno%TYPE ;  
  empInfo emp%ROWTYPE ;  
BEGIN 
  eno := en ; 
  SELECT * INTO empInfo FROM emp WHERE empno=eno ;  
  DBMS_OUTPUT.put_line('雇員編號:'||empInfo.empno) ;  
  DBMS_OUTPUT.put_line('雇員姓名:'||empInfo.ename) ;  
END ; 

使用 for 循環操作游標(比較常用)

DECLARE 
  -- 聲明游標 
  CURSOR mycur IS SELECT * FROM emp where empno=-1; 
  empInfo emp%ROWTYPE ; 
  cou NUMBER ;  
BEGIN 
  -- 游標操作使用循環,但是在操作之前必須先將游標打開 
  FOR empInfo IN mycur  
  LOOP 
    --ROWCOUNT 對游標所操作的行數進行記錄 
    cou := mycur%ROWCOUNT ;  
    DBMS_OUTPUT.put_line(cou||'雇員編號:'||empInfo.empno) ;  
    DBMS_OUTPUT.put_line(cou||'雇員姓名:'||empInfo.ename) ;  
  END LOOP ; 
END ;  

我們可以看到游標FOR循環確實很好的簡化了游標的開發,我們不在需要open、fetch和close語句,不在需要用%FOUND屬性檢測是否到最后一條記錄,這一切Oracle隱式的幫我們完成了。 

編寫第一個游標,輸出全部的信息。

DECLARE 
  -- 聲明游標 
  CURSOR mycur IS SELECT * FROM emp ; -- 相當于一個List (EmpPo) 
  empInfo emp%ROWTYPE ;  
BEGIN 
  -- 游標操作使用循環,但是在操作之前必須先將游標打開 
  OPEN mycur ; 
  -- 使游標向下一行 
  FETCH mycur INTO empInfo ; 
  -- 判斷此行是否有數據被發現 
  WHILE (mycur%FOUND)  
    LOOP  
      DBMS_OUTPUT.put_line('雇員編號:'||empInfo.empno) ;  
      DBMS_OUTPUT.put_line('雇員姓名:'||empInfo.ename) ; 
      -- 修改游標,繼續向下 
      FETCH mycur INTO empInfo ;  
    END LOOP ; 
END ; 

也可以使用另外一種方式循環游標:LOOP…END LOOP;

DECLARE 
  -- 聲明游標 
  CURSOR mycur IS SELECT * FROM emp ; 
  empInfo emp%ROWTYPE ;  
BEGIN 
  -- 游標操作使用循環,但是在操作之前必須先將游標打開 
  OPEN mycur ;  
  LOOP 
    -- 使游標向下一行 
    FETCH mycur INTO empInfo ; 
    EXIT WHEN mycur%NOTFOUND ;  
    DBMS_OUTPUT.put_line('雇員編號:'||empInfo.empno) ;  
    DBMS_OUTPUT.put_line('雇員姓名:'||empInfo.ename) ; 
  END LOOP ;  
END ; 

注意 1: 在打開游標之前最好先判斷游標是否已經是打開的。

通過 ISOPEN 判斷

格式:

游標%ISOPEN IF mycur%ISOPEN THEN 
null ;  
ELSE  
OPEN mycur ;  
END IF ; 

注意 2:可以使用 ROWCOUNT 對游標所操作的行數進行記錄。

DECLARE 
  -- 聲明游標 
  CURSOR mycur IS SELECT * FROM emp ; 
  empInfo emp%ROWTYPE ; 
  cou NUMBER ; BEGIN 
  -- 游標操作使用循環,但是在操作之前必須先將游標打開 
  IF mycur%ISOPEN THEN 
    null ;  
  ELSE 
    OPEN mycur ;  
  END IF ;  
  LOOP 
    -- 使游標向下一行 
    FETCH mycur INTO empInfo ; 
    EXIT WHEN mycur%NOTFOUND ; 
    cou := mycur%ROWCOUNT ;  
    DBMS_OUTPUT.put_line(cou||'雇員編號:'||empInfo.empno) ;  
    DBMS_OUTPUT.put_line(cou||'雇員姓名:'||empInfo.ename) ;  
  END LOOP ; 
END ; 

2.函數

函數就是一個有返回值的過程。

定義一個函數:此函數可以根據雇員的編號查詢出雇員的年薪

CREATE OR REPLACE FUNCTION myfun(eno emp.empno%TYPE)  
  RETURN NUMBER AS rsal NUMBER ;  
BEGIN 
  SELECT (sal+nvl(comm,0))*12 INTO rsal FROM emp WHERE empno=eno ; 
  RETURN rsal ;  
END ; 

直接寫 SQL 語句,調用此函數:

SELECT myfun(7369) FROM dual ; 

寫一個函數  輸入一個員工名字,判斷該名字在員工表中是否存在。存在返回 1,不存在返回 0

create or replace function empfun(en emp.ename%type)  
  return number as is_exist number; 
begin 
  select count(*) into is_exist from emp where ename=upper(en); 
  return is_exist; 
end; 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • 詳解Oracle游標的簡易用法
  • Oracle游標的使用實例詳解
  • Oracle中游標Cursor基本用法詳解
  • 詳解Oracle隱式游標和顯式游標
  • Oracle出現超出打開游標最大數的解決方法
  • Oracle顯示游標的使用及游標for循環
  • Oracle存儲過程返回游標實例詳解
  • Oracle 游標使用總結
  • oracle 在一個存儲過程中調用另一個返回游標的存儲過程
  • Oracle游標使用參考語句實例解析

標簽:遼源 中衛 自貢 寧波 百色 紹興 海東 昭通

巨人網絡通訊聲明:本文標題《Oracle中的游標和函數詳解》,本文關鍵詞  Oracle,中的,游標,和,函數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle中的游標和函數詳解》相關的同類信息!
  • 本頁收集關于Oracle中的游標和函數詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 99在线无码精品秘?入口忍者| 啊啊啊受不了了| 18?嗯嗯嗯视频网站疼想要爽 | good一gay一tube| 午夜精品A片一二三区蜜臀| 熟妇视频AV777天堂| 国产69精品久久久久9999| 欧美午夜精品成人片在线播放| 近親国产偷子亂伦中文字墓| 欧美国产综合日韩一区二区| 大坑上的乱呻吟声| 亚洲精品乱码国产精品乱码| 爽?躁多水?快?深点黑人 | 日韩伦理片在线观看伦理电影网站| 91无码?高潮?在线偷拍电影| 亚洲精品中文字幕乱码三区91| 欧美精品久久久久A片丁香| 亚洲一区二区日韩欧美gif| 美女在线电影| 欧美人野外做爰AAAAA| 国产免费一级精品视频| 可顺利播放男同志freebest| 人人看人人鲁狠狠高清| HD XXXX Movies video| 欧美男同Gay???video| 女班主任脱了裤子让我桶| 年轻丰满的继牳8| 91精品国产综合久久香蕉ktv| 日本特级大片| 自w到高c的25种图| 艾米艾米成人影院| 免费无遮挡??视频网站西瓜TV| 国产精品亚洲А∨无码忘忧草| 艳妇与粗巨茎| 中文字幕人成乱码熟女免费69| 国产一级又黄又爽又色大片QQ号 | 程嘉美三级理论电影| 三上悠亚免费一区二区在线| 免费a级大片| 国产精品秘?入口久久熟女| 老女人扒开裤子让我爽|