我正在研究將每個表暴露在視圖中的Oracle數據庫。出於清晰的原因,我已經使視圖名稱包含它正在展示的表的名稱。現在我想知道是否有任何視圖中不包含名稱的表,這意味着我忘了暴露他們的視圖。Oracle - 搜索另一個表中包含的一個表中的字符串
如果我查詢ALL_TABLES和ALL_VIEWS,讓我們假設我得到以下結果:
SELECT table_name FROM all_tables:
TABLE1
TABLE2
TABLE3
SELECT view_name FROM all_tables:
TABLE1_VIEW
TABLE2_VIEW
我現在想查詢兩個結果,並獲得中包含的任何視圖名稱中的所有表名和那些不是。在我的例子中,包含TABLE1和TABLE2,但TABLE3不包含。
我試着循環所有的表名,並在視圖名稱結果集上查找它們中的每一個。我想知道是否有更直接的方法。
我不會依賴視圖的名稱,除非你有絕對的把握,所有的視圖名稱甲肝e預定義的形式,例如'TABLE1_VIEW'。而是檢查「ALL_VIEWS.TEXT」列是否包含某個表名。 –
你說得對,我根本不是一個可靠的方法。我主要把這視爲一個挑戰,因爲我是Oracle的新手,而且我不會自動執行任何操作。 – ederbf