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

淺談Oracle函數返回Table集合

數據庫 Oracle
通過引入Oracle函數中的管道化表函數,糾正了整個集合在可以返回前,必須進行具體化的問題。涵蓋了使用自定義類型,使用Pipeline管道函數和Pipe row()等。

在調用Oracle函數時為了讓PL/SQL 函數返回數據的多個行,必須通過返回一個 REF CURSOR 或一個數據集合來完成。REF CURSOR 的這種情況局限于可以從查詢中選擇的數據,而整個集合在可以返回前,必須進行具體化。 9i 通過引入Oracle函數中的管道化表函數糾正了后一種情況。表函數是返回整個行的集(通常作為一個集合)的函數,可以直接從 SQL 語句中進行查詢,就好像它是一個真正的數據庫表一樣。管道化表函數與之相似,但是它像在構建時一樣返回數據,而不是一次全部返回。管道化表函數更加有效,因為數據可以盡可能快地返回。

管道化表函數必須返回一個集合。在函數中,PIPE ROW 語句被用來返回該集合的單個元素,該函數必須以一個空的 RETURN 語句結束,以表明它已經完成。一旦我們創建了上述函數,我們就可以使用 TABLE 操作符從 SQL 查詢中調用它,從而使Oracle函數返回Table集合。

1.使用自定義類型

  1. /* Formatted on 2010/02/26 08:42 (Formatter Plus v4.8.8) */  
  2. CREATE OR REPLACE TYPE objemp AS OBJECT (  
  3.    maxsal   NUMBER,  
  4.    minsal   NUMBER  
  5. );  
  6. /* Formatted on 2010/02/26 08:43 (Formatter Plus v4.8.8) */  
  7. CREATE OR REPLACE TYPE tabemp AS TABLE OF objemp;  
  8.  
  9.    

2.使用Pipeline管道函數和Pipe row()

  1. CREATE OR REPLACE FUNCTION getmaxminsalary (department NUMBER)  
  2.    RETURN tabemp PIPELINED  
  3. AS  
  4.    maximum_salary   NUMBER;  
  5.    minimum_salary   NUMBER;  
  6.    v_errorcode      NUMBER;  
  7.    v_errortext      VARCHAR2 (200);  
  8.    v                objemp;  
  9. BEGIN  
  10.    FOR myrow IN (SELECT MAX (sal) m_sal, MIN (sal) min_sal  
  11.                    FROM emp  
  12.                   WHERE deptno = departmnet)  
  13.    LOOP  
  14.       v := (myrow.m_sal, myrow.min_sal);  
  15.       PIPE ROW (v);  
  16.    END LOOP;  
  17.    RETURN;  
  18. EXCEPTION  
  19.    WHEN OTHERS  
  20.    THEN  
  21.       v_errorcode :SQLCODE;  
  22.       v_errortext :SUBSTR (SQLERRM, 1, 200);  
  23.       INSERT INTO log_table  
  24.                   (code, MESSAGE, info  
  25.                   )  
  26.            VALUES (v_errorcode, v_errortext, 'getMaxMinSalary'  
  27.                  );  
  28. END;  
  29.  

3.使用Table操作符

  1. SELECT * FROM TABLE(getMaxMinSalary(10)); 

以上是一個不錯的Oracle函數返回Table集合的實例,感興趣的讀者可以試一試。

責任編輯:佚名 來源: 小田田博客
相關推薦

2009-09-11 11:25:35

LINQ函數集合

2009-09-10 11:29:00

LINQ to SQL

2010-10-25 10:10:08

oracle函數

2009-11-17 17:47:56

Oracle Shar

2009-11-17 10:48:22

Oracle Spat

2010-10-25 11:39:16

oracle函數

2009-08-18 09:06:41

C#對象和集合

2009-09-14 09:49:08

Linq擴展函數

2010-04-16 11:17:33

hints調整

2009-05-06 11:09:10

Oracle物化視圖數據庫

2010-04-20 16:17:03

Oracle In-M

2009-05-04 09:52:49

Oracle優化排序

2009-10-27 18:01:46

2009-04-16 09:08:21

Oracle開發經驗

2009-06-10 09:58:32

Oracle sequHibernate

2011-07-18 18:01:34

buffer cach

2010-04-13 13:47:42

Oracle DBA

2022-05-24 06:14:41

動態服務靜態服務oracle

2009-05-08 09:46:37

微軟C#集合對象

2025-03-19 07:48:07

C# 13params參數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲人成人一区二区在线观看 | 中文字幕国产视频 | 免费一级网站 | 免费一区二区三区 | 欧美老少妇一级特黄一片 | 欧美日韩高清一区 | 亚洲精品免费在线 | 午夜视频免费在线观看 | 免费人成激情视频在线观看冫 | 国精品一区二区 | 又黄又爽的网站 | av一级久久| 日韩在线欧美 | 亚洲精品大片 | 一级aaaaaa毛片免费同男同女 | 久久88| 精品欧美乱码久久久久久 | 欧美性久久| 九九九视频在线 | 亚洲bt 欧美bt 日本bt | 少妇黄色 | 国产午夜精品视频 | 久久久www成人免费精品 | 欧美精品一区在线 | 久久99深爱久久99精品 | 性一交一乱一透一a级 | 精品久久久久久中文字幕 | 国产一区二区免费 | 日韩色图视频 | 亚洲精品福利视频 | 一区二区三区免费 | 精品久久久久久一区二区 | 午夜免费网站 | 中文字幕亚洲一区二区三区 | 91社区在线观看播放 | 岛国精品| 亚洲狠狠爱 | 欧美自拍另类 | 国产高清一区二区 | 欧美色图另类 | 亚洲日本成人 |