我基本上需要自动化这种情况。 1-我有一个表STATS_QUERIES,如下所示: STATS_QUERIES
2 - 我有一个输出表,我必须存储结果(通过引用前一个表)。它看起来像这样: STATS_RESULTS_CARD
3- PL / SQL逻辑:
For each row in STATS_QUERIES
• If the object type for the current query is Card:
o Execute the query in the current row and store the results in STATS_RESULTS_CARD
• Else if the object type of the current query is Node:
o …
• And so on.
End Loop
Commit.
如何从表中逐个执行该行(目标是运行存储在STATS_QUERIES表中的查询)并存储在STATS_RESULT_CARD中。
非常感谢任何帮助
答案 0 :(得分:0)
您可以使用以下内容:
CREATE PROCEDURE test
AS
TYPE t_c IS REF CURSOR;
c t_c;
s VARCHAR2 (4000);
src STATS_RESULT_CARD%ROWTYPE;
BEGIN
FOR c1 IN (SELECT *
FROM stats_queries)
LOOP
IF c1.object = 'Card' THEN
OPEN c FOR c1.query;
FETCH c INTO src;
CLOSE c;
INSERT INTO STATS_RESULT_CARD
VALUES src;
ELSE
-- other code here
NULL;
END IF;
END LOOP;
END;
您应该在查询中有STATDATE,或者您可以使用记录而不是STATS_RESULT_CARD%ROWTYPE,然后使用插入使用字段名称