我将如何存储 select 语句的结果,以便我可以重用结果来加入不同的表?这也将在游标内。
下面是一些伪代码,在这个例子中我保持 Select 语句简单,但在现实生活中它是一个带有多个连接的长查询,我必须使用相同的 SQL 两次来连接到 2 个不同的表,因为它很长而且将来可以更改,因此我希望能够重用它。
我尝试创建一个视图并将选择语句的结果存储在其中,但似乎我无法在游标循环内创建视图,当我尝试时出现“遇到符号“CREATE””错误。
DECLARE TYPE cur_type IS REF CURSOR;
CURSOR PT_Cursor IS
SELECT * FROM Table1
PT_Cursor_Row PT_Cursor%ROWTYPE;
BEGIN
OPEN PT_Cursor;
LOOP
FETCH PT_Cursor INTO PT_Cursor_Row;
EXIT WHEN PT_Cursor%NOTFOUND;
Select ID From Table2 --this is actually a long complext query
INNER JOIN Table3 ON Table2.ID = Table3.ID
WHERE Table2.ID = PT_Cursor_Row.ID
Select * From Table2 --this is actually a long complext query
LEFT JOIN Table4 ON Table2.ID = Table4.ID
WHERE Table2.ID = PT_Cursor_Row.ID
END LOOP;
CLOSE PT_Cursor;
END;