2
我有一個非常大的SQL語句,它返回一個id列表。我需要這個id列表作爲其他語句的基礎。像這樣:插入並從oracle中的表/數組中選擇
open crs_result1 for ' select * from ... where id in (select <ids> from <base_statement>) ';
open crs_result2 for ' select * from ... where id in (select <ids> from <base_statement>) ';
open crs_result3 for ' select * from ... where id in (select <ids> from <base_statement>) ';
...
當然,我不想每次選擇不同的選擇整個id列表。
所以,我的想法是使用一個表/數組:
TYPE gt_result_rec IS RECORD
(
id NUMBER
);
TYPE gt_result_tab IS TABLE OF gt_result_rec INDEX BY BINARY_INTEGER;
t_results gt_result_tab;
execute immediate 'insert into t_results select <ids> from <base_statement>';
而不是用它爲所有其他語句:
open crs_result1 for ' select * from ... where id in (select id from t_results) ';
...
但是,這並不真正發揮作用。
有誰知道這個問題或有更好的解決方案?