查询 teradata 以获取所有数据库的列表

Querying the teradata to get the list of all the databases

我使用 resultsetgetmetadata 查询 Teradata 数据库。出于某种原因,我发现很难使用 C# 获得结果。

这是Java中的代码:

public class T20905JD
{
    public static String sUser = "guest";
    public static String sPassword = "please";

    public static void main(String args[])

    {
        // Creation of URL to be passed to the JDBC driver
        String url = "jdbc:teradata://whomooz/TMODE=ANSI,CHARSET=UTF8";

        // Creating a connection object
        Connection con = DriverManager.getConnection(url, sUser, sPassword);
        System.out.println(" User " + sUser + " connected.");
        System.out.println(" Connection to Teradata established. \n");

        DatabaseMetaData dbmd = con.getMetaData();
        System.out.println(" DatabaseMetaData object created. \n");

        ResultSet rs = dbmd.getSchemas();

        // Display the database names
        System.out.println(" DISPLAYING ALL DATABASE NAMES:\n");

        while(rs.next())
        {
            System.out.println(" " + rs.getString("TABLE_SCHEM"));
        }
    }
}

我如何在 Teradata 中使用 C# 获得相同的结果?

这与 C# 和 Java 无关,但与 Teradata 无关。获取所有数据库(模式)的最简单方法是查询:

SELECT DatabaseName, OwnerName
  FROM DBC.DATABASES
 WHERE DBKind = 'D';

如果您想查看数据库的层次结构,则必须在查询中包含 OwnerName。