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

淺談Oracle函數(shù)返回Table集合

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

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

管道化表函數(shù)必須返回一個集合。在函數(shù)中,PIPE ROW 語句被用來返回該集合的單個元素,該函數(shù)必須以一個空的 RETURN 語句結(jié)束,以表明它已經(jīng)完成。一旦我們創(chuàng)建了上述函數(shù),我們就可以使用 TABLE 操作符從 SQL 查詢中調(diào)用它,從而使Oracle函數(shù)返回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管道函數(shù)和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函數(shù)返回Table集合的實例,感興趣的讀者可以試一試。

責任編輯:佚名 來源: 小田田博客
相關(guān)推薦

2009-09-11 11:25:35

LINQ函數(shù)集合

2009-09-10 11:29:00

LINQ to SQL

2010-10-25 10:10:08

oracle函數(shù)

2009-11-17 17:47:56

Oracle Shar

2009-11-17 10:48:22

Oracle Spat

2010-10-25 11:39:16

oracle函數(shù)

2009-08-18 09:06:41

C#對象和集合

2009-09-14 09:49:08

Linq擴展函數(shù)

2009-05-04 09:52:49

Oracle優(yōu)化排序

2010-04-16 11:17:33

hints調(diào)整

2009-05-06 11:09:10

Oracle物化視圖數(shù)據(jù)庫

2010-04-20 16:17:03

Oracle In-M

2010-04-13 13:47:42

Oracle DBA

2022-05-24 06:14:41

動態(tài)服務(wù)靜態(tài)服務(wù)oracle

2009-10-27 18:01:46

2009-04-16 09:08:21

Oracle開發(fā)經(jīng)驗

2009-06-10 09:58:32

Oracle sequHibernate

2011-07-18 18:01:34

buffer cach

2009-05-08 09:46:37

微軟C#集合對象

2025-03-19 07:48:07

C# 13params參數(shù)
點贊
收藏

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

主站蜘蛛池模板: 久久久久精 | 日韩一区在线视频 | 99精品一区二区 | 亚洲成人www | 色综合久久天天综合网 | 亚洲啊v| 国产精品毛片无码 | 国产农村一级国产农村 | 色视频一区二区 | h视频在线播放 | 精精国产xxxx视频在线播放 | 成人精品一区亚洲午夜久久久 | 91久久国产综合久久91精品网站 | 羞羞视频免费观看入口 | 国产精品一区二区三级 | 日韩a级片| 精品久久香蕉国产线看观看亚洲 | 日日摸日日爽 | 九色国产 | 日韩午夜影院 | 亚洲国产精品一区二区第一页 | 欧美网址在线观看 | h在线看 | 日本一二区视频 | www.亚洲.com| 国产精品观看 | 丁香婷婷在线视频 | 国产视频在线一区二区 | 日韩av一区在线观看 | 一级黄片一级毛片 | 久久精品视频在线观看 | 新超碰97 | 精品久久久久久久久久久久久久 | 日本精品一区二区 | 欧美日韩在线播放 | 二区高清| 日韩精品一区二区在线 | 神马福利 | 日韩精品一二三 | 中文字幕日韩欧美一区二区三区 | 久久成人一区 |