2014-02-11 46 views
1

我有一個映射表,其中包含源和表名稱作爲屬性。使用從子句中的子查詢動態選擇表名稱

,我有以下查詢:

select * 
from 
(select table_name from mapping_table where source='CL Table') 

我要檢索的table_name的數據,但此查詢將返回唯一的表名而不是數據。

怎麼辦?

+0

您必須使其成爲動態。有很多方法可行!但問題是使用它的列名稱。因爲你可能不知道它是什麼列。如果您事先知道列名,它非常簡單! –

+0

你使用什麼客戶端?例如:'JAVA'(_JDBC _)/'PHP'(_ADO_)? –

+0

也許這個問題可以幫助http://stackoverflow.com/questions/21555997/oracle-query-selecting-records-using-column-data-from-first-table/21556595#21556595 –

回答

0
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; 
+0

所以,現在我不得不打電話給在from子句中使用proc?我可以將整個查詢結果集從proc返回給from子句嗎?可能嗎 ? – user3296988