我正在使用com.teradata.jdbc.TeraDriver
我需要获取要显示给用户的所有数据库的列表。为此,我创建了java.sql.Connection并调用以下内容:
connection.getMetaData().getSchemas()
这将返回所有teradata数据库的列表。但是,我想从此列表中排除用户。
让自己更清楚。如果我们查看Teradata Studio Express中的teradata数据库,我们可以看到所有数据库的列表。在数据库的详细信息中,有一个名为“数据库类型”的属性。值为" user"或"数据库"。我想通过jdbc通过"数据库"来获取所有这些数据库。类型。
任何帮助将不胜感激。谢谢!
答案 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参数,以仅返回用户已通过其提供访问权限的对象。显式或隐式权限。
链接指向用于提供答案的网站。