我使用以下SQL语句在Oracle 11g中创建一个全局临时表。
SQL> CREATE GLOBAL TEMPORARY TABLE TEST (id int primary key);
现在如何使用Connection.getMetaData().getTables
过滤掉此表格
。对于上面的TABLE_TYPE = TABLE
表,我得到了GLOBAL TEMPORARY
而不是TEST
以下是我的java代码。
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class GetGlobalTempTables {
public static void main(String[] args) {
Connection connection = null;
Statement connStmt = null;
ResultSet res = null;
String dbURL = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "testuser";
String pass = "testpass";
try {
connection = DriverManager.getConnection(dbURL, user, pass);
DatabaseMetaData meta = connection.getMetaData();
res = meta.getTables(null, "TEST_SCHEMA", null, new String[] { "TABLE", "VIEW" });
while (res.next()) {
System.out.println(res.getString("TABLE_SCHEM") + ", " + res.getString("TABLE_NAME") + ", "
+ res.getString("TABLE_TYPE"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (connStmt != null) {
connStmt.close();
}
if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
任何帮助都将非常感谢......!