我已经声明了两个函数(duplicate_iofs 和 duplicate_ioftypes),它们在执行 INSERT 操作后都返回一个表:
CREATE OR REPLACE FUNCTION duplicate_iofs(IN iof_group_src_id integer, IN iof_group_dst_id integer)
RETURNS TABLE(src_id integer, new_id integer) AS $$
BEGIN
-- DO INSERT REQUESTS
END;
CREATE OR REPLACE FUNCTION duplicate_ioftypes(IN iof_group_src_id integer, IN iof_group_dst_id integer)
RETURNS TABLE(src_id integer, new_id integer) AS $$
BEGIN
-- DO INSERT REQUESTS
END;
我怎样才能在第三个函数中做类似的事情:
-- 1. Call duplicate_iofs(...) and store the result table (e.g. iofs_table)
-- 2. Call duplicate_ioftypes(...) and store the result table (e.g. ioftypes_table).
-- 3. Iterate through 'iofs_table' and 'ioftypes_table' with nested loops :
FOR iof_row IN SELECT * FROM iofs_table LOOP
FOR ioftype_row IN SELECT * FROM ioftypes_table LOOP
-- DO SOMETHING
END LOOP;
END LOOP;
注意:duplicate_iofs() 和 duplicate_ioftypes() 必须只调用一次,因此不得在嵌套循环中调用。