我有一个生成号码的代码:
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;