从MYSQL到oracle的迁移以及备份(7)
来源:未知 责任编辑:责任编辑 发表时间:2014-03-23 22:31 点击:次
String line=null;
while((line=br.readLine())!=null){
bw.append(convertString(line));
bw.append("\r\n");
}
bw.flush();
br.close();
bw.close();
isr.close();
osw.close();
}
private static String convertString(String line){
line=line.replace("`", "");
Pattern p=Pattern.compile("'\\d{4}\\-\\d+\\-\\d+'");
Matcher m=p.matcher(line);
String date=null;
while(m.find()){
date=m.group(0);
line=line.replace(date, "to_date("+date+",'yyyy-MM-dd')");
}
p=Pattern.compile("'\\d{4}\\-\\d+\\-\\d+\\s\\d+\\:\\d+\\:\\d+'");
m=p.matcher(line);
date=null;
while(m.find()){
date=m.group(0);
String newDate=date.substring(0,date.indexOf(" "));
line=line.replace(date, "to_date("+newDate+"','yyyy-MM-dd')");
}
return line;
}
}
三、看似没有问题了,直接执行脚本就没问题了,但是问题又来了:
我是直接用控制开的sqlplus来访问Oracle的,没有工具,每次执行脚本,是通过@脚本名.sql来执行的,但是请注意如果是路径太长,比如@”C:/Documents and Settings/gaofei/桌面/oracle_insertData.sql”路径中间有空格需要加上””的,
执行报错。很多错:
1、关于数据中的 等这类的特殊,oracle会认为是plsql编程中自定义的变量,当然会出问题了,所以需要设置set define off,关掉自定义变量。
2、一个问题很少会有人用到,就是关于Oracle的插入数据,一个字段最多插入2999个字符。太多将会插入不进的。而我的数据都是模板或新闻,很多多是上万,所以问题来了。没有想到办法。最后我是将很多的数据删除的很短,插入成功后,通过程序一条条插入的。
迁移完成了 ,下面就是关于Oracle的备份问题了。www.2cto.com
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>