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

时间:2014-03-19 13:00:22

标签: jdbc teradata

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

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

connection.getMetaData().getSchemas()

这将返回所有teradata数据库的列表。但是,我想从此列表中排除用户。

让自己更清楚。如果我们查看Teradata Studio Express中的teradata数据库,我们可以看到所有数据库的列表。在数据库的详细信息中,有一个名为“数据库类型”的属性。值为" user"或"数据库"。我想通过jdbc通过"数据库"来获取所有这些数据库。类型。

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

1 个答案:

答案 0 :(得分:1)

开发自己的查询DBC.Databases视图的GetSchema()方法:

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 () ; }
}

如果您希望在显示的对象中更加离散,则可以使用其他逻辑在连接字符串中指定UseXViews参数,以仅返回用户已通过其提供访问权限的对象。显式或隐式权限。

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