2017-07-28 10 views
0
select * 
from (
    select table_name 
    from user_tab_cols 
    where column_name='CONTRACT_NUMBER' 
) 
where contarct_number ='U5490231' 

列清單與select語句的SQL查詢,我試圖讓表的從user_tab_cols
列表,然後做一個的Oracle SQL來解決,在這個SELECT語句獲取多個值

select * 
from table_name 
where column_name='U5490231'. 

試圖找到在此基礎上SELECT語句,但得到錯誤

+1

請發表你 – Max

+0

你會需要動態SQL做的錯誤,但是......你爲什麼東東這一切嗎?聽起來好像有一個主要的設計問題。 – Mat

+1

您的代碼中有錯字** contarct ** _號碼 –

回答

0
Oracle Query: 
v_table NVARCHAR(MAX) 
v_whereCol NVARCHAR(MAX) 
v_WhereParam NVARCHAR(MAX) 

v_WhereParam := 'CONTRACT_NUMBER' 
v_whereCol := 'U5490231' 

SELECT E.table_name INTO v_table 
FROM user_tab_cols AS E 
WHERE E.column_name = v_WhereParam 
v_query NVARCHAR(MAX) 
v_query := 'Select * from ' || v_table || ' Where contarct_number =''' || v_whereCol || '''' 
EXECUTE IMMEDIATE v_query 
+0

請檢查這一個。 –

+0

抱歉,延遲響應。但此代碼不起作用。我也嘗試過對它進行修改。 – Alka

+0

錯誤是確切的提取返回多個行 – Alka