2013-03-06 76 views
1

我寫一個程序掃描所有表名數據庫並顯示所有從Oracle數據庫中選擇所有的表名

我的數據庫有表:用戶,訂單,歷史

它應該是這樣的:「現有表格:用戶訂單歷史記錄」

命令應該如何顯示?

string SqlOrder="Select ??? from TestDB" 
+0

您需要解僱的說法,得到那麼結果在C# – CloudyMarble 2013-03-06 09:28:50

回答

2

試試這個

SELECT 'Existing Tables: ' || wm_concat(table_name) tablenames 
    FROM user_tables; 

對於示例Oracle HR數據庫返回

TABLENAMES 
------------------------------------------------------------------------------------ 
Existing Tables: REGIONS,LOCATIONS,DEPARTMENTS,JOBS,EMPLOYEES,JOB_HISTORY,COUNTRIES 

更新:例與LISTAGG()

SELECT 'Existing Tables: ' || LISTAGG(table_name, ',') 
     WITHIN GROUP (ORDER BY table_name) tablenames 
    FROM user_tables; 
+0

LISTAGG()也可能是相關的:http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php#listagg – CloudyMarble 2013-03-06 09:43:39

+0

同意。添加到答案中。 – peterm 2013-03-06 09:53:06

+0

這答案正是我想要做thx! – Sam 2013-03-06 10:31:00

1
select table_name 
from all_tables 

手冊中的更多細節:http://docs.oracle.com/cd/E11882_01/server.112/e25513/statviews_2117.htm#i1592091

+0

手動鏈接丟失格式化這些,而且我猜OP didnt意味着這個 – CloudyMarble 2013-03-06 09:29:43

+0

我明白像他想將表名和表名之間的字符串作爲彗星分隔,這將解釋用C#標記標記問題。 – CloudyMarble 2013-03-06 09:32:33

+0

@TwoMore:但他仍然需要以某種方式選擇所有表名。 – 2013-03-06 09:33:17

相關問題