public class HsqlToOra implements DBtoDB
{
private OracleDataBase oracleDataBase;
public HsqlToOra(DataBase oracledb)
{
this.oracleDataBase = (OracleDataBase) oracledb;
}
public void convertAllTable(DataBase hqlDB, DBUser hqlUser, DataBase oraDB,
DBUser oracUser, DataFilter filter)
{
Connection hqlConn = hqlDB.getConn(hqlUser.getUserName(), hqlUser
.getPassword());
Connection oracConn = oraDB.getConn(oracUser.getUserName(), oracUser
.getPassword());
List<TableInfo> tables = getTables(hqlConn, hqlUser.getUserName());
for (int i = 0; i < tables.size(); i++)
{
TableInfo table = tables.get(i);
convertTable(hqlConn, oracConn, table, filter);
}
}
/**
* @param originDB
* @param user
* @param targetDB
* @param user2
* @param filter
*/
@SuppressWarnings("unchecked")
public void convertAllViews(DataBase hsqlDB, DBUser hsqlUser,
DataBase oraclDB, DBUser oraclUser, DataFilter filter)
{
Connection hsqlConn = hsqlDB.getConn(hsqlUser.getUserName(), hsqlUser
.getPassword());
Connection oraclConn = oraclDB.getConn(oraclUser.getUserName(),
oraclUser.getPassword());
Map viewMap = getAllViews(hsqlConn, hsqlUser.getUserName());
Statement stmt = null;
StringBuffer oralSql = null;
try
{
stmt = oraclConn.createStatement();
for (Iterator it = viewMap.keySet().iterator(); it.hasNext();)
{
oralSql = new StringBuffer("CREATE OR REPLACE VIEW ");
String viewName = (String) it.next();
String tableDefinition = (String) viewMap.get(viewName);
oralSql.append(viewName);
oralSql.append(" AS ").append(tableDefinition);
stmt.executeQuery(oralSql.toString());
System.out.println("***********************************");
System.out.println(oralSql.toString());
System.out.println("***********************************");
oralSql = new StringBuffer("DROP VIEW ").append(viewName);
stmt.execute(oralSql.toString());
System.out.println(oralSql.toString());
}
} catch (SQLException e)
{
e.printStackTrace();
} finally
{
try
{
stmt.close();
// hsqlConn.close();
// oraclConn.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
public void convertSequence(DataBase hsqlDB, DBUser user, DataBase oralDB,
DBUser tuser)
{
Connection hsqlConn = hsqlDB.getConn(user.getUserName(), user
.getPassword());
Connection oraclConn = oralDB.getConn(user.getUserName(), user
.getPassword());
StringBuffer hsqlSql = new StringBuffer();
hsqlSql
.append("SELECT SEQUENCE_NAME FROM INFORMATION_SCHEMA.SEQUENCES where SEQUENCE_SCHEMA = '");
hsqlSql.append(user.getUserName() + " '");
Statement hsqlStmt = null;
Statement oraclStmt = null;
ResultSet allSequence = null;
try
{
hsqlStmt = hsqlConn.createStatement();
oraclStmt = oraclConn.createStatement();
allSequence = hsqlStmt.executeQuery(hsqlSql.toString());
StringBuffer oralSql = new StringBuffer();
while (allSequence.next())
{
oralSql = new StringBuffer("CREATE SEQUENCE ");
oralSql.append(allSequence.getString("SEQUENCE_NAME"));
oraclStmt.execute(oralSql.toString());
System.out.println(oralSql.toString());
oralSql = new StringBuffer("DROP SEQUENCE ");
oralSql.append(allSequence.getString("SEQUENCE_NAME"));
oraclStmt.execute(oralSql.toString());
System.out.println(oralSql.toString());
}
} catch (SQLException e)
{
e.printStackTrace();
} finally
{
try
{
hsqlStmt.close();
allSequence.close();
oraclStmt.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
{
private OracleDataBase oracleDataBase;
public HsqlToOra(DataBase oracledb)
{
this.oracleDataBase = (OracleDataBase) oracledb;
}
public void convertAllTable(DataBase hqlDB, DBUser hqlUser, DataBase oraDB,
DBUser oracUser, DataFilter filter)
{
Connection hqlConn = hqlDB.getConn(hqlUser.getUserName(), hqlUser
.getPassword());
Connection oracConn = oraDB.getConn(oracUser.getUserName(), oracUser
.getPassword());
List<TableInfo> tables = getTables(hqlConn, hqlUser.getUserName());
for (int i = 0; i < tables.size(); i++)
{
TableInfo table = tables.get(i);
convertTable(hqlConn, oracConn, table, filter);
}
}
/**
* @param originDB
* @param user
* @param targetDB
* @param user2
* @param filter
*/
@SuppressWarnings("unchecked")
public void convertAllViews(DataBase hsqlDB, DBUser hsqlUser,
DataBase oraclDB, DBUser oraclUser, DataFilter filter)
{
Connection hsqlConn = hsqlDB.getConn(hsqlUser.getUserName(), hsqlUser
.getPassword());
Connection oraclConn = oraclDB.getConn(oraclUser.getUserName(),
oraclUser.getPassword());
Map viewMap = getAllViews(hsqlConn, hsqlUser.getUserName());
Statement stmt = null;
StringBuffer oralSql = null;
try
{
stmt = oraclConn.createStatement();
for (Iterator it = viewMap.keySet().iterator(); it.hasNext();)
{
oralSql = new StringBuffer("CREATE OR REPLACE VIEW ");
String viewName = (String) it.next();
String tableDefinition = (String) viewMap.get(viewName);
oralSql.append(viewName);
oralSql.append(" AS ").append(tableDefinition);
stmt.executeQuery(oralSql.toString());
System.out.println("***********************************");
System.out.println(oralSql.toString());
System.out.println("***********************************");
oralSql = new StringBuffer("DROP VIEW ").append(viewName);
stmt.execute(oralSql.toString());
System.out.println(oralSql.toString());
}
} catch (SQLException e)
{
e.printStackTrace();
} finally
{
try
{
stmt.close();
// hsqlConn.close();
// oraclConn.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
public void convertSequence(DataBase hsqlDB, DBUser user, DataBase oralDB,
DBUser tuser)
{
Connection hsqlConn = hsqlDB.getConn(user.getUserName(), user
.getPassword());
Connection oraclConn = oralDB.getConn(user.getUserName(), user
.getPassword());
StringBuffer hsqlSql = new StringBuffer();
hsqlSql
.append("SELECT SEQUENCE_NAME FROM INFORMATION_SCHEMA.SEQUENCES where SEQUENCE_SCHEMA = '");
hsqlSql.append(user.getUserName() + " '");
Statement hsqlStmt = null;
Statement oraclStmt = null;
ResultSet allSequence = null;
try
{
hsqlStmt = hsqlConn.createStatement();
oraclStmt = oraclConn.createStatement();
allSequence = hsqlStmt.executeQuery(hsqlSql.toString());
StringBuffer oralSql = new StringBuffer();
while (allSequence.next())
{
oralSql = new StringBuffer("CREATE SEQUENCE ");
oralSql.append(allSequence.getString("SEQUENCE_NAME"));
oraclStmt.execute(oralSql.toString());
System.out.println(oralSql.toString());
oralSql = new StringBuffer("DROP SEQUENCE ");
oralSql.append(allSequence.getString("SEQUENCE_NAME"));
oraclStmt.execute(oralSql.toString());
System.out.println(oralSql.toString());
}
} catch (SQLException e)
{
e.printStackTrace();
} finally
{
try
{
hsqlStmt.close();
allSequence.close();
oraclStmt.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}