ORACLE TABLE函数()

Table(   函数名称()  );
意思是, 把返回结果集合的函数返回的结果, 以表的形式, 进行返回。
下面是一个返回结果集的函数的例子:
-- 定义类型
CREATE OR REPLACE TYPE MyTable AS OBJECT(A int, B int, C int);
/
CREATE OR REPLACE TYPE MyTableResult IS TABLE OF MyTable;
/


CREATE OR REPLACE FUNCTION getTestTable return MyTableResult
IS
  -- 预期返回结果.
  return_Result  MyTableResult := MyTableResult();
BEGIN
  -- 结果追加一行.
  return_Result.EXTEND;
  -- 设置结果内容.
  return_Result(return_Result.COUNT) := MyTable(A   => 1, B=>2, C=>3);
  -- 结果追加一行.
  return_Result.EXTEND;
  -- 设置结果内容.
  return_Result(return_Result.COUNT) := MyTable(A   => 4, B=>5, C=>6);
  -- 结果追加一行.
  return_Result.EXTEND;
  -- 设置结果内容.
  return_Result(return_Result.COUNT) := MyTable(A   => 7, B=>8, C=>9);

  return return_Result;
END getTestTable;
/


SQL> SELECT
  2    A, B, C
  3  FROM
  4   table( getTestTable() );

         A          B          C
---------- ---------- ----------
         1          2          3
         4          5          6
         7          8          9

SQL>
上面的table( getTestTable() );
就是这样的效果。

猜你喜欢

转载自eternal1025.iteye.com/blog/2269791
今日推荐