将导出的文件内容复制到 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. FSCTF 2023(公开赛道)WP

    FSCTF 2023 ID:Mar10 Rank:6 总结:下次看到不正常报错一定重新安装一遍工具~~ web 源码!启动! 就在源码注释里 <!-- 师傅们,欢迎来到CTF的世界~ NSSCT ...

  2. SpringBoot 整合Easy Poi 下载Excel(标题带批注)、导出Excel(带图片)、导入Excel(校验参数,批注导出),附案例源码

    导读 日常开发过程中,经常遇到Excel导入.导出等功能,其中导入逻辑相对麻烦些,还涉及到参数的校验,然后将错误信息批注导出.之前写过EasyExcel导入(参数校验,带批注)(点我直达1.点我直达2 ...

  3. 基于JQ使用原生js构造一个自动回复随机消息的机器人

    某些业务会使用到页面里存在一个机器人,类似于假客服一样,可以回复游客的问题. 那么如何自己写一个自动回复消息的机器人呢? 源码献上 /** * 基于jq的自动对话机器人 * @param {Objec ...

  4. 【RocketMQ 系列】 RocketMQ 双主双从(同步双写) 集群搭建

    1. 各角色介绍 Producer:消息的发送者:举例:发信者 Consumer:消息接收者:举例:收信者 Broker:暂存和传输信息:举例:邮局 NameServer:管理Broker:举例:各个 ...

  5. Docker开始收费了,开始转学podman【第一篇podman容器的安装和基本操作】

    podman 什么是Podman?Podman是无守护程序容器引擎,用于在Linux系统上开发,管理和运行OCI容器.容器可以以root用户或无根模式运行.简而言之:`alias docker = p ...

  6. 基于微信小程序的校园维修管理系统-开题报告参考

    \n文末获取源码联系 感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 一.课题研究的目的和意义** 本研究开发基于微信小程序的物品维修系统,它不仅能实现专业的维 ...

  7. [oeasy]python0069_帮助手册_pydoc_manual_document

    帮助手册 回忆上次内容   上次了解了注释 注释是为了让程序更可读 注释不会影响程序运行速度   注释分为两种 单行的 以#开头 不能是字符串当中的#   多行的 三个" 三个'     多 ...

  8. [oeasy]python0017_解码_decode_字节序列_bytes_字符串_str

    ​ 解码 decode 回忆上次内容 code就是码 最早也指电报码 后来有各种编码.密码.砝码.条码 都指的是把各种事物编个号 encode就是编码 编码就是给事物编个号 ​ 编辑 编码基本了解了 ...

  9. JavaScript '&&' 与 '||' 操作符

    "&&" 操作符 1.如果第一个操作数是对象,则返回第二操作数 var res = {} && "Hello";//Hello ...

  10. 学习笔记--Java构造方法

    Java构造方法 关于构造方法 构造方法又被称作:构造函数/构造器/Constructor 语法结构: [修饰符列表] 构造方法名(形式参数列表){ 构造方法体; } 对比普通方法语法结构 [修饰符列 ...