将导出的文件内容复制到 dd1.txt,或其它文件,修改path的值即可

修改后的sql文件为 dd1.sql :

替换的内容:

1. 全局替换了一些字符串,如`

2. workbench导出的sql,并没有insert into的表名,不知道是我这边软件的问题还是什么

3. workbench导出的sql,时间格式需要调整一下(时间字符串按需调整,我这边只是调整了几个对应的年份下的日期)


import java.io.*;

public class UpdateFileLine {

    public static void readTxt(String filePath) {
try {
File file = new File(filePath);
String needText = "";
String tableName = "";
String path = "D:\\xxx\\dd1.txt";
if(file.isFile() && file.exists()) {
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
BufferedReader br = new BufferedReader(isr);
String lineTxt = null;
int num =0;
long time1 = System.currentTimeMillis();
while ((lineTxt = br.readLine()) != null) {
System.out.println(lineTxt);
if (num > 5) {
lineTxt = lineTxt.replace("``", tableName);
lineTxt = lineTxt.replace("`", "");
int index = lineTxt.lastIndexOf(",'2022-");
while(index > -1) {
String[] date = replaceDate(index, lineTxt);
lineTxt = lineTxt.replace(date[0],date[1]);
index = lineTxt.lastIndexOf(",'2022-");
}
int index1 = lineTxt.lastIndexOf(",'2021-");
while(index1 > -1) {
String[] date = replaceDate(index1, lineTxt);
lineTxt = lineTxt.replace(date[0],date[1]);
index1 = lineTxt.lastIndexOf(",'2021-");
}
int index2 = lineTxt.lastIndexOf(",'2019-");
while(index2 > -1) {
String[] date = replaceDate(index2, lineTxt);
lineTxt = lineTxt.replace(date[0],date[1]);
index2 = lineTxt.lastIndexOf(",'2019-");
}
int index3 = lineTxt.lastIndexOf(",'2018-");
while(index3 > -1) {
String[] date = replaceDate(index3, lineTxt);
lineTxt = lineTxt.replace(date[0],date[1]);
index3 = lineTxt.lastIndexOf(",'2018-");
}
System.out.println(lineTxt);
needText += lineTxt+"\n";
} else {
if (num == 1) {
tableName = lineTxt.substring(lineTxt.indexOf("ddc.") + 4);
System.out.println( "tableName : " + tableName);
}
}
num++;
System.out.println("总共"+num+"条数据!");
}
//System.out.println("总共"+num+"条数据!");
long time2 = System.currentTimeMillis();
long time = time1 - time2;
System.out.println("共花费"+time+"秒");
br.close();
try {
FileOutputStream fos = new FileOutputStream(path);
fos.write(needText.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("文件不存在!");
}
} catch (Exception e) {
System.out.println("文件读取错误!");
} } public static String[] replaceDate(int index, String lineTxt) {
String[] res = new String[2];
String date1 = lineTxt.substring(index +1, index + 22);
String needDate = "TO_DATE(" + date1 + " , 'yyyy-MM-dd hh24-mi-ss')";
res[0] = date1;
res[1] = needDate;
return res;
} public static void main(String[] args) {
String filePath = "D:\\xxx\\dd.sql";
System.out.println(filePath);
readTxt(filePath);
}

  

将workbench 导出的sql数据修改为 oracle 的sql版本的更多相关文章

  1. SQL数据库面试题

    SQL数据库面试题 1.SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值 这种情况其实我们经常用到,比如我们新建了一个用户,建立完用户后我们希望马上得到这个新用户的ID ...

  2. oracle和sql server 比较

    Oracle   SQLServer   比较 字符数据类型  CHAR  CHAR  都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb 变长字符数据类型  ...

  3. ORACLE和SQL语法区别归纳

    数据类型比较类型名称 Oracle   SQLServer   比较字符数据类型  CHAR  CHAR  都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb ...

  4. Oracle 数据库SQL性能查看

    作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作.下面简单介绍下一些查看 ...

  5. 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)

    基于Oracle的SQL优化(社区万众期待数据库优化扛鼎巨著) 崔华 编   ISBN 978-7-121-21758-6 2014年1月出版 定价:128.00元 856页 16开 编辑推荐 本土O ...

  6. Oracle 与Sql Server常用函数对比

    来自:http://topic.csdn.net/u/20080704/08/b2b8c42f-b0d6-4cda-98b1-6e4a279b4ff8.html 感谢楼主 函数 SQLServer和O ...

  7. Oracle PL/SQL Articles

    我是搬运工....http://www.oracle-base.com/articles/plsql/articles-plsql.php Oracle 8i Oracle 9i Oracle 10g ...

  8. SSIS结合BCP及SQL Server作业实现定时将数据导出打包实现数据同步

    首先这个流程要实现的功能大致是: 有两台服务器,一台是对外网开发的,一台是内网的.那么很明显数据交互都是外网服务器在做,而这个流程要做的就是要将外网上面的数据定时同步到内网中. 我们依对其中某张表的操 ...

  9. Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件

    一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...

  10. 你真的会玩SQL吗?简单的数据修改

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

随机推荐

  1. frp内网穿透:基于centos8 云服务器和debian12客户端服务器

    前言 入了一台本地工控机盒子,刷成了debian12系统,性能比云服务器要好一点,现在想要远程访问这台盒子,但是盒子又没有公网地址,所以想通过内网穿透的方式,通过云服务器转发请求实现内网穿透.原来体验 ...

  2. 数据盘故障导致journalnode异常恢复

    背景环境:hdp2.6.6部署的小集群(4节点),这个投入生产后,转手了很多批次人维护,安装源介质这些通通都找不到了,目前官网无法下载hdp的安装介质,中途有坏了一个节点的系统盘,维修好了后,因为没有 ...

  3. 全网最适合入门的面向对象编程教程:02 类和对象的Python实现-使用Python创建类

    全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类 摘要 本文主要介绍了串口通信协议的基本概念.串口通信的基本流程.如何使用 Python 语言创建一个 ...

  4. Django使用 DoesNotExist 异常和 Logger 来记录异常情况

    代码不仅处理了特定的异常类型,还可以添加更多的调试信息来帮助诊断问题.可以使用 DoesNotExist 异常和 Logger 来记录异常情况. from django.core.exceptions ...

  5. 如何让 MGR 不从 Primary 节点克隆数据?

    问题 MGR 中,新节点在加入时,为了与组内其它节点的数据保持一致,它会首先经历一个分布式恢复阶段.在这个阶段,新节点会随机选择组内一个节点(Donor)来同步差异数据. 在 MySQL 8.0.17 ...

  6. JVM系列(一) -浅谈虚拟机的成长史

    一.摘要 众所周知,Java 经过多年的发展,已经从一门单纯的计算机编程语言,发展成了一套成熟的软件解决方案.从互联网到企业平台,Java 是目前使用最广泛的编程语言. 以下这段内容是来自 Java ...

  7. 关于使用UE5打包Android的测试

    UE5打包Android,不同于UE4,在官方文档中需要Android studio 4.0或者3.5,还有Android SDK,NDK等 设置SetupAndroid, 在UE5 Editor配置 ...

  8. 【云服务器】记录使用腾讯云服务器搭建个人blog网站-【1】服务器配置

    服务器购买 第一次写博客,写的不好请见谅 腾讯云教育活动 配置还行,能搭建个网站了果断下单 选择系统 缺点(对我来说):参考于:人生不开窍:Windows Server各版本差异 不能安装window ...

  9. spark基础了解—运行层次结构、standalone与onyarn

    spark程序运行层次结构 standalone即主从机制,后续添加了standaloneHA,zk管理master的存活,一旦master挂了会在候选master中诞生新的 HAstandalone ...

  10. jpa+querydsl的平替国产easy-query最好用的orm

    jpa+querydsl的平替国产easy-query最好用的orm 一款国产最强java orm,完美支持可控强类型dsl,外加完美支持对象模型筛选拉取的orm,拥有非常智能的include(s)一 ...