【发布时间】:2014-03-11 13:30:54
【问题描述】:
我有一个临时表,我想用它来填充另一个表。对于临时表中的每一行,我都想执行一个函数,该函数可能会为另一个表生成一条或多条记录。
DECLARE
CURSOR cur IS SELECT col1, col2, col3 FROM table1;
BEGIN
FOR rec
IN cur
LOOP
-- Pseudo Code Follows
FOR result
IN somefunction(rec.col1, rec.col2)
INSERT INTO table2
(col1, col2, col3, calculated_value)
VALUES
(rec.col1, rec.col2, rec.col3, result.calculated_value)
END LOOP;
END LOOP;
END;
这样做有意义吗?
Oracle PL/SQL 函数能否返回类似这样的可迭代内容?
我通常会在 Perl 或 Python 中执行此操作,但由于所有数据都在 Oracle 中,我不想浪费时间检索数据、计算数据,然后插入数据,如果这一切都可以在数据库。临时表将有大约 75000 行,我预计第二个表将有 550000 行。
【问题讨论】: