private void convertIndex(Connection oraConn, Connection hsqlConn,
SqlRecord record) throws Exception
{
// 创建索引
Statement oraStmt = oraConn.createStatement();
ResultSet allIndex = oraStmt
.executeQuery("select index_name, uniqueness from user_indexes where table_name ='"
+ record.getTableName() + "'");
while (allIndex.next())
{
String theSql = null;
if (allIndex.getString("index_name").equals("UNIQUE"))
{
theSql = getCreateIndexStmt(oraConn, record, allIndex
.getString("index_name"), true);
} else
{
theSql = getCreateIndexStmt(oraConn, record, allIndex
.getString("index_name"), false);
}
Statement hsqlStmt = hsqlConn.createStatement();
if (theSql != null)
{
// System.out.println(user+" :: "+theSql);
System.out.println("index create :" + theSql);
hsqlStmt.execute(theSql);
hsqlStmt.close();
}
// break;
hsqlStmt.close();
}
allIndex.close();
oraStmt.close();
}
private void convertData(Connection oraConn, Connection hsqlConn,
SqlRecord record) throws Exception
{
// System.out.println(record.getSql());
Statement oraStmt = oraConn.createStatement();
ResultSet data = oraStmt.executeQuery(record.getSql());
Statement hsqlStmt = hsqlConn.createStatement();
while (data.next())
{
String insertSql = getDataInsertSql(record.getTableName(), data);
// System.out.println("data transform sql : " + insertSql);
hsqlStmt.execute(insertSql);
}
hsqlStmt.close();
data.close();
oraStmt.close();
}
SqlRecord record) throws Exception
{
// 创建索引
Statement oraStmt = oraConn.createStatement();
ResultSet allIndex = oraStmt
.executeQuery("select index_name, uniqueness from user_indexes where table_name ='"
+ record.getTableName() + "'");
while (allIndex.next())
{
String theSql = null;
if (allIndex.getString("index_name").equals("UNIQUE"))
{
theSql = getCreateIndexStmt(oraConn, record, allIndex
.getString("index_name"), true);
} else
{
theSql = getCreateIndexStmt(oraConn, record, allIndex
.getString("index_name"), false);
}
Statement hsqlStmt = hsqlConn.createStatement();
if (theSql != null)
{
// System.out.println(user+" :: "+theSql);
System.out.println("index create :" + theSql);
hsqlStmt.execute(theSql);
hsqlStmt.close();
}
// break;
hsqlStmt.close();
}
allIndex.close();
oraStmt.close();
}
private void convertData(Connection oraConn, Connection hsqlConn,
SqlRecord record) throws Exception
{
// System.out.println(record.getSql());
Statement oraStmt = oraConn.createStatement();
ResultSet data = oraStmt.executeQuery(record.getSql());
Statement hsqlStmt = hsqlConn.createStatement();
while (data.next())
{
String insertSql = getDataInsertSql(record.getTableName(), data);
// System.out.println("data transform sql : " + insertSql);
hsqlStmt.execute(insertSql);
}
hsqlStmt.close();
data.close();
oraStmt.close();
}
本文介绍了一种从Oracle数据库迁移到HSQL数据库的方法。通过创建索引和转换数据两个步骤,确保数据完整性和查询效率。首先从Oracle获取索引信息,并在HSQL中创建相应的唯一或非唯一索引;接着将Oracle中的数据通过SQL查询导出,并在HSQL中执行插入操作。

被折叠的 条评论
为什么被折叠?



