多值函数或表函数返回的都是由多个值组成的一个集合。可以使用SQL命令的table操作符,可以将该集合直接用作SQL查询中的关系表。
第一步:创建一个类型,如:
CREATE TYPE BookType AS OBJECT (
isbn CHAR(10),
title VARCHAR2(100)
)
第二步:创建以BookType为基本类型的表类型
CREATE TYPE BookTypes AS TABLE OF BookType;
第三步:创建函数
CREATE OR REPLACE FUNCTION SomeBooks(p_Category IN books.category%TYPE)
RETURN BookTypes AS
v_ResultSet BookTypes := BookTypes();
CURSOR c_SomeBooks IS
SELECT isbn, title
FROM books
WHERE category = p_Category;
BEGIN
FOR v_Rec IN c_SomeBooks LOOP
v_ResultSet.EXTEND;
v_ResultSet(v_ResultSet.LAST) := BookType(v_Rec.isbn, v_Rec.title);
END LOOP;
RETURN v_ResultSet;
END SomeBooks;
第四步:调用函数
SELECT * FROM TABLE (SomeBooks('Oracle Basics'));
oracle 函数 等同于 sql server 表值函数
猜你喜欢
转载自shutaodream.iteye.com/blog/2069632
今日推荐
周排行