转载请注明来源:http://blog.youkuaiyun.com/loongshawn/article/details/50586379
最近碰到oracle数据库迁移,由于高级的迁移方法还不会,当前只会手动导入导出迁移。在迁移完所有数据表后,需要继续迁移索引、序列、视图、触发器、函数等。
本文主要说明批量迁移索引、序列、视图。触发器由于执行过程中异常,还没有找到方法自动处理;函数就只有几个手动处理掉了。
1. java程序
本次迁移面临问题:索引较多有68个,序列28个,视图8个。手动一个一个处理,看得眼睛都花了。就弄个java脚本处理。
不过各位碰到具体问题需要做微调。
package com.autonavi.service;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLSyntaxErrorException;
import java.sql.Statement;
import com.autonavi.db.DataBaseConnection;
public class DealOracle {
private static DataBaseConnection cFactory = new DataBaseConnection();
static ResultSet rs = null;
static Connection connection1 = null;
static Connection connection2 = null;
static Statement statement = null;
public static void copyIndex(){
// 1.查询出建索引语句
String SQL = "SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) AS id FROM USER_INDEXES u";
try {
int count = 0;
PreparedStatement pState1 = null;
PreparedStatement pState2 = null;
pState1 = cFactory.createConnection4 ().prepareStatement(SQL);
ResultSet rs = pState1.executeQuery();
whil