diff --git a/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/DatabaseObjectCommonUtil.java b/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/DatabaseObjectCommonUtil.java index 779e60b0e27a3992fb8a2ac0d687985800d59e42..7f7a29921f21e2b2f41b54be59c1de57ae0164d8 100644 --- a/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/DatabaseObjectCommonUtil.java +++ b/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/DatabaseObjectCommonUtil.java @@ -721,6 +721,54 @@ public class DatabaseObjectCommonUtil { return tables; } + /** + * 判断系统中临时表是否存在 + * + * @param db db + * @return 表名 + */ + public static boolean tempTableIsExist(DBInfo db,String tableName) { + boolean result=false; + String sql = null; + if (db.getDbType() == DbType.Oracle || db.getDbType() == DbType.DM || db.getDbType() == DbType.Oscar) { + sql = "select OBJECT_NAME from ALL_OBJECTS where temporary = 'Y' and OBJECT_NAME = '"+tableName+"'"; + } else if (db.getDbType() == DbType.PgSQL || db.getDbType() == DbType.HighGo) { + sql = "select relname from pg_class where relname='"+tableName+"'"; + } else if (db.getDbType() == DbType.MySQL) { + return false; + } else if (db.getDbType() == DbType.SQLServer) { + sql = "select object_id(N'tempdb.."+tableName+"',N'U')"; + } else if (db.getDbType() == DbType.Kingbase) { + sql = "select 1 from sys_tables where tablename = '"+tableName+"'"; + } else if (db.getDbType() == DbType.DB2) { + return false; + } else { + return false; + } + GspDatabase gspDatabase = GspDbFactory.getDatabase(db); + ResultSet resultSet = null; + try { + resultSet = gspDatabase.executeResultSet(sql); + if (resultSet != null) { + if(resultSet.next()){ + result=true; + } + } + } catch (Exception e) { + throw new RuntimeException("获取数据库表时出错:", e); + } finally { + if (resultSet != null) { + try { + resultSet.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + gspDatabase.close(); + } + return result; + } + /** * 判断表中字段是否存在 *