如果我知道表的每一列的名稱而不是表的名稱,我如何找到我需要的表的名稱?Oracle SQL:如何查找給定列名稱的表名?
回答
嘗試此(一種已知的列):
CREATE TABLE mytab(mycol VARCHAR2(30 CHAR));
SELECT table_name FROM user_tab_columns WHERE column_name='MYCOL';
注MYCOL
是上在column_name='MYCOL'
殼體;
乾杯!
還有其他視圖可用:USER_TAB_COLS, ALL_TAB_COLS,ALL_TAB_COLUMNS。根據您的訪問權限,還可以使用這些權限:DBA_TAB_COLS,DBA_TAB_COLUMNS – Roobie
基於@ Roobie的解決方案,下面的代碼在您有權訪問的所有模式中進行搜索,以防表中的數據不在您自己的模式中。還添加了不區分大小寫的匹配。
SELECT owner, table_name
FROM all_tab_columns
WHERE UPPER(column_name) = UPPER('MYCOL');
嘿喬希,很好的編輯。我認爲你不需要左側的UPPER(UPPER(column_name))。乾杯! – Roobie
@Roobie,99.8%的時間,但總是有蝙蝠東西瘋狂供應商代碼的可能性(考慮爲SQL Server設計的應用程序,供應商提供了Oracle版本)。您可以在Oracle中創建混合大小寫的列,但不應該這樣做。例如:'CREATE TABLE stupid_table(「MixedCaseColumn」INTEGER PRIMARY KEY);'。將UPPER放在兩側可以覆蓋近百%的案例。爲了一個好笑,看看這個小提琴我只是放在一起:http://sqlfiddle.com/#!4/2840e/1/0 –
哦。明白了你的觀點。乾杯 – Roobie
select * from all_updatable_columns where column_name like 'reqd col name';
- 1. Oracle查找表名給出索引名稱
- 2. 如何查找Oracle服務名稱
- 3. 如何根據列名稱查找表的名稱,然後訪問所述表
- 4. 從C#中,如何查找SQL Server中表的列名稱?
- 5. 使用給定名稱在不變列表中查找元素
- 6. 如何編寫一個SQL Server查詢,該查詢給出了給定FK名稱的表名稱?
- 7. Oracle SQL:如何查詢沒有標題/列名稱的CSV?
- 8. 查找列基因名稱的,把給定的ID在B列
- 9. Sql查找表中的類似名稱
- 10. 如何使用列名查找數據庫名稱和表名稱
- 11. Oracle如何查找與特定列名匹配的所有列
- 12. Oracle SQL:使用變量表名稱和固定列名稱進行更新
- 13. 在MS SQL中查找列名稱
- 14. 查找列名SQL
- 15. 查找重複名稱sql
- 16. 如何將變量名稱分配給SQL查詢別名列名?
- 17. 如何找到列表的名稱
- 18. 查找與給定名稱匹配的子域名
- 19. 如何將表名稱傳遞給VBA中的sql查詢
- 20. 如何在SQL SELECT中輸出給定的列名稱
- 21. 如何查找Jframe名稱
- 22. 如何查詢表的列名稱
- 23. 如何使用SQL Server中的列值查找列和表名稱?
- 24. 列名內的SQL表名稱
- 25. 如何才能獲得給定的mysql查詢的列名稱?
- 26. 給列表變量名稱
- 27. Oracle如何以大寫的列名稱
- 28. 如何從SQL Server 2005中的列值查找表的列名?
- 29. SQL Server - 按指定值查找列的名稱
- 30. 如何檢查數據庫列中persent的給定名稱
不知道,但如果爲每個表的主鍵COLUMN_NAMES是唯一的,那麼你可以也許嘗試訪問數據庫的元數據,並通過表中進行搜索? – ncdreamy