Oracle 多值函數

 多值函數或表函數返回的都是由多個值組成的一個集合。可以使用SQL命令的table操作符,可以將該集合直接用作SQL查詢中的關係表。

第一步:創建一個類型,如:

  1. CREATE TYPE BookType AS OBJECT ( 
  2.   isbn  CHAR(10), 
  3.   title VARCHAR2(100) 

第二步:創建以BookType爲基本類型的表類型

 

  1. CREATE TYPE BookTypes AS TABLE OF BookType; 

第三步:創建函數

  1. CREATE OR REPLACE FUNCTION SomeBooks(p_Category IN books.category%TYPE) 
  2.   RETURN BookTypes AS 
  3.  
  4.   v_ResultSet BookTypes :BookTypes(); 
  5.    
  6.   CURSOR c_SomeBooks IS 
  7.     SELECT isbn, title 
  8.       FROM books 
  9.       WHERE category = p_Category
  10.  
  11. BEGIN 
  12.   FOR v_Rec IN c_SomeBooks LOOP 
  13.      
  14.     v_ResultSet.EXTEND; 
  15.     v_ResultSet(v_ResultSet.LAST) :BookType(v_Rec.isbn, v_Rec.title); 
  16.   END LOOP; 
  17.    
  18.   RETURN v_ResultSet; 
  19. END SomeBooks; 

第四步:調用函數

  1. SELECT * FROM TABLE (SomeBooks('Oracle Basics')); 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章