将导出的文件内容复制到 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. Canvas绘制圆角图片

    效果图: 思路: 先绘制一个圆角长方形 在画布中裁剪下来 在圆角长方形内绘制图片 图片四个角超出圆角长方形的区域被隐藏 具体代码: <!DOCTYPE html> <html lan ...

  2. Log4Net配置详解及输出自定义消息类示例

    1.简单使用实例 1.1 添加log4net.dll的引用.   在NuGet程序包中搜索log4net并添加,此次我所用版本为2.0.17.如下图: 1.2 添加配置文件   右键项目,添加新建项, ...

  3. 写给rust初学者的教程(三):闭包、智能指针、并发工具

    这系列RUST教程一共三篇.这是最后一篇,介绍RUST语言的进阶概念.主要有闭包.智能指针.并发工具. 上一篇:写给rust初学者的教程(二):所有权.生存期 closure "闭包&quo ...

  4. ABC195E

    其实我们发现很多博弈论的动态规划都是从后往前的,比如过河卒和本题. 这是因为从某种角度上来说这些动态规划有后效性而无前效性. 所以设计状态 \(dp_{i,j}\) 表示第 \(i\) 次操作 \(T ...

  5. Linux 提权-SUID/SGID_1

    本文通过 Google 翻译 SUID | SGID Part-1 – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释 ...

  6. Java常用JDK类库和第三方类库

    以下是收集的一些有用的第三方库,Java开发人员可以在其应用程序中使用它们来完成许多有用的任务.为了使用这些库,Java开发人员也应该熟悉这些类库. jdk自带的常用类库 java.lang包 jav ...

  7. MySQL 并发控制(锁得使用)

    导读 并发问题:同一时刻进行读写,并发问题回引发数据不一致问题. 解决并发问题:MySQL采用了锁定机制去解决并发问题 锁的分类 MySQL使用两种锁机制去解决问题:共享锁和排他锁,也叫读锁或者写锁. ...

  8. API是什么

    API就是接口,就是通道,负责一个程序和其他软件的沟通,本质是预先定义的函数.譬如我们去办事,窗口就类似一个API,如果对于某一件不简单的事情,这个窗口能做到让我们"最多跑一次", ...

  9. .NET周刊【7月第2期 2024-07-14】

    国内文章 开源GTKSystem.Windows.Forms框架让C# winform支持跨平台运行 https://www.cnblogs.com/easywebfactory/p/18289178 ...

  10. 学习笔记--Java中方法递归调用

    Java中方法递归调用 public class RecursionTest01{ public static void main(String[] args){ System.out.println ...