簡體   English   中英

如何在數據庫中列出表名?

[英]How do I list the table names in a database?

我們有一個Oracle 8i數據庫,我只有讀取權限。 我們使用ODBC和MS Access從該數據庫讀取數據,因為我們沒有Oracle客戶端軟件。 這很好用。 我在ASP.NET中使用ADO.NET。 現在我想顯示我通過ODBC在MS Access中看到的所有表的列表。 我在C#中嘗試使用ODBC連接。 我嘗試了以下查詢來獲取表的列表,這些表不起作用。

  1. 從dba_tables中選擇table_name;
  2. 從all_tables中選擇table_name;
  3. 從標簽中選擇tname;

請幫忙。

謝謝你的回復。 我沒試好就試過了。 我想要看到的是當我使用ODBC創建鏈接表時MS Access中可用的相同列表。

這是我用來實現這個功能的功能,它實際上並不像我希望的那樣。

public static ArrayList GetODBCTablesList()
        {
            try
            {                
                OdbcConnection DbConnection = new OdbcConnection("DSN=mydsn;UID=user1;PWD=pwd1;");
                DbConnection.Open();

                OdbcCommand DbCommand = DbConnection.CreateCommand();
                DbCommand.CommandText = "select table_name from all_tables";                
                OdbcDataReader DbReader = DbCommand.ExecuteReader();

                if (DbReader != null)
                {
                    ArrayList TableList = new ArrayList();
                    while (DbReader.Read())
                    {
                        TableList.Add(DbReader.GetString(0));
                    }
                    DbReader.Close();
                    DbCommand.Dispose();
                    DbConnection.Close();

                    TableList.Sort();
                    TableList.TrimToSize();
                    return TableList;
                }

                DbCommand.Dispose();
                DbConnection.Close();

                return null;
            }
            catch (Exception ex)
            {
                LogHandler.WriteLogMessage(ex.GetBaseException().ToString(), true);
                return null;
            }
        }

這給了我一個表的列表,它不包含我在使用ODBC鏈接MS Access中的表時看到的所有表。

這有效:

select table_name from tabs;

由於您使用的是ADO.NET,我建議使用OdbcConnection.GetSchema 此方法返回一個DataTable其中包含有關數據庫架構的信息。

這個答案 ,這可能對你有用:

OdbcConnection.GetSchema( “表”)

您可以嘗試select table_name from user_tables

要么

select object_name from USER_objects where object_type='TABLE'

嘗試:

SELECT owner, table_name
  FROM dba_tables

摘自Oracle中所有表的獲取列表?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM