通过jdbc获取teradata数据库列表?

通过jdbc获取teradata数据库列表?,jdbc,teradata,Jdbc,Teradata,我正在使用com.teradata.jdbc.TeraDriver 我需要获得所有数据库的列表,以显示给用户。为此,我创建java.sql.Connection并调用以下命令: connection.getMetaData().getSchemas() 这将返回所有teradata数据库的列表。但是,我想从该列表中排除用户 让我说得更清楚。如果我们在teradata Studio Express中查看teradata数据库,我们可以看到所有数据库的列表。在数据库的详细信息中,有一个名为数据库类

我正在使用com.teradata.jdbc.TeraDriver

我需要获得所有数据库的列表,以显示给用户。为此,我创建java.sql.Connection并调用以下命令:

connection.getMetaData().getSchemas()
这将返回所有teradata数据库的列表。但是,我想从该列表中排除用户

让我说得更清楚。如果我们在teradata Studio Express中查看teradata数据库,我们可以看到所有数据库的列表。在数据库的详细信息中,有一个名为数据库类型的属性。该值为“用户”或“数据库”。我想通过jdbc获得所有“数据库”类型的数据库

任何帮助都将不胜感激。谢谢

开发自己的方法来查询DBC.Databases视图:

public static String getSchema (Connection con)
throws SQLException
{
 Statement stmt = con.createStatement () ;
 try {
  ResultSet rs = stmt.executeQuery ("SELECT DatabaseName FROM DBC.Databases WHERE DBKind = 'D'") ;
  try {
   rs.next () ;
   return rs.getString (5) ;
  } finally { rs.close () ; }
 } finally { stmt.close () ; }
}
如果希望在显示的对象中更加离散,则可以使用其他逻辑在连接字符串中指定参数,以仅返回用户通过显式或隐式权限设置访问权限的对象


链接指向用于提供答案的网站。

表面上,问题在于用户是Teradata中的数据库。唯一的区别是用户有密码。因此,用户的模式可以像任何其他数据库一样包含对象。