1
我有一個映射表,其中包含源和表名稱作爲屬性。使用從子句中的子查詢動態選擇表名稱
,我有以下查詢:
select *
from
(select table_name from mapping_table where source='CL Table')
我要檢索的table_name
的數據,但此查詢將返回唯一的表名而不是數據。
怎麼辦?
我有一個映射表,其中包含源和表名稱作爲屬性。使用從子句中的子查詢動態選擇表名稱
,我有以下查詢:
select *
from
(select table_name from mapping_table where source='CL Table')
我要檢索的table_name
的數據,但此查詢將返回唯一的表名而不是數據。
怎麼辦?
DECLARE
v_mystring VARCHAR(50);
v_my_ref_cursor sys_refcursor;
myrecord <some_table_or_type>;
BEGIN
select table_name into my_table_name
from mapping_table
where source='CL Table';
v_mystring := 'SELECT * from '||my_table_name;;
OPEN v_my_ref_cursor FOR v_mystring;
LOOP
FETCH v_my_ref_cursor INTO myrecord;
-- your processing
END LOOP;
CLOSE v_my_ref_cursor;
END;
所以,現在我不得不打電話給在from子句中使用proc?我可以將整個查詢結果集從proc返回給from子句嗎?可能嗎 ? – user3296988
您必須使其成爲動態。有很多方法可行!但問題是使用它的列名稱。因爲你可能不知道它是什麼列。如果您事先知道列名,它非常簡單! –
你使用什麼客戶端?例如:'JAVA'(_JDBC _)/'PHP'(_ADO_)? –
也許這個問題可以幫助http://stackoverflow.com/questions/21555997/oracle-query-selecting-records-using-column-data-from-first-table/21556595#21556595 –