結果を再利用して別のテーブルに結合できるように、select ステートメントの結果を保存するにはどうすればよいですか? これもカーソル内になります。
以下はいくつかの疑似コードです。この例では、Select ステートメントをシンプルにしていますが、実際には複数の結合を含む長いクエリです。2 つの異なるテーブルに結合するには、同じ SQL を 2 回使用する必要があり、非常に長く、将来変更される可能性があるため、再利用できるようにしたいと考えています。
ビューを作成してselectステートメントの結果を保存しようとしましたが、カーソルループ内でビューを作成できないようです。試してみると、「シンボル「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;