将导出的文件内容复制到 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. QChart 移动 缩放 加速

    qchart 和 qchartview 的运用的例子 qchart 存在一些问题 一般用在2000个点以下的场景,点多了,就会卡. 解决的办法就是 开启opengl加速. 但这时,对qchartvie ...

  3. QCon 回顾 | Data Fabric:逻辑统一、物理分散

    Data Fabric(数据编织),自 2019 年开始就在 Gartner 年度技术趋势榜单上安家,并在 2022 年被列为数据分析领域十大技术趋势之首,它究竟有哪些价值?又如何在企业落地? 在近日 ...

  4. [oeasy]python0123_中文字符_文字编码_gb2312_激光照排技术_王选

    中文编码GB2312 回忆上次内容 上次回顾了 日韩各有 编码格式 日本 有假名 五十音 一字节 可以勉强放下   有日本汉字 字符数量超过20000+     韩国 有谚文 数量超过500 一个字节 ...

  5. [oeasy]python0053_ 续行符_line_continuation_python行尾续行

    续行符与三引号 回忆上次内容 上次还是转义序列 类型 英文 符号 \a bell 响铃 \b backspace 退格 \t tab 水平制表符 \v vertical tab 垂直制表符换行不回车 ...

  6. CF1359A 题解

    洛谷链接&CF 链接 题目简述 共有 \(T\) 组数据. 对于每组数据给出 \(n,m,k\),表示 \(k\) 名玩家打牌,共 \(n\) 张牌,\(m\) 张王,保证 \(k \mid ...

  7. 面试题-python 什么是闭包(closure)?

    前言 前面学了装饰器,那么闭包和装饰器有什么区别呢?闭包传递的是变量,而装饰器传递的是函数对象,只是传的参数内容不一样,闭包的概念包含了装饰器,可以说装饰器是闭包的一种,它只是传递函数对象的闭包. 先 ...

  8. 一文详解 JuiceFS 读性能:预读、预取、缓存、FUSE 和对象存储

    在高性能计算场景中,往往采用全闪存架构和内核态并行文件系统,以满足性能要求.随着数据规模的增加和分布式系统集群规模的增加,全闪存的高成本和内核客户端的运维复杂性成为主要挑战. JuiceFS,是一款全 ...

  9. 一款.NET开源、跨平台的DASH/HLS/MSS下载工具

    前言 今天大姚给大家分享一款.NET开源(MIT License).免费.跨平台的DASH/HLS/MSS下载工具,并且支持点播和直播(DASH/HLS)的内容下载:N_m3u8DL-RE. 网络流媒 ...

  10. hbuilder打包的应用上架appstore屏幕快照的生成方法

    当我们使用hbuiderX或apicloud这些打包工具进行打包的时候,我们需要将打包好的ipa文件进行上架,但是你会发现,我们上架的时候需要上传5.5寸的iphone.6.5寸的iphone X和两 ...