b / w表函数和流水线表函数有什么区别

时间:2014-02-05 09:18:23

标签: oracle plsql

我有一个生成号码的代码:

create or replace package pk1 as

type t1 is table of number;

function p(x number) return t1 pipelined;

end pk1;

create or replace package body  pk1 is

function p(x number) return t1 pipelined is

begin

for i in 1..x loop

PIPE ROW(i);

    END LOOP;

    RETURN;

  END f1;

END pkg1;

如果为该对象(表)和

创建一个对象和一个集合,也可以这样做

使用extend函数并在对象中插入值

会有什么不同。

CREATE TYPE t_tf_row AS OBJECT (

  id           NUMBER,

  description  VARCHAR2(50)

);


CREATE TYPE t_tf_tab IS TABLE OF t_tf_row;

CREATE OR REPLACE FUNCTION get_tab_tf (p_rows IN NUMBER) RETURN t_tf_tab AS

  l_tab  t_tf_tab := t_tf_tab();

BEGIN

  FOR i IN 1 .. p_rows LOOP

    l_tab.extend;

    l_tab(l_tab.last) := t_tf_row(i, 'Description for ' || i);

  END LOOP;

  RETURN l_tab;

END;

0 个答案:

没有答案