将workbench 导出的sql数据修改为 oracle 的sql版本
将导出的文件内容复制到 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版本的更多相关文章
- SQL数据库面试题
SQL数据库面试题 1.SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值 这种情况其实我们经常用到,比如我们新建了一个用户,建立完用户后我们希望马上得到这个新用户的ID ...
- oracle和sql server 比较
Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb 变长字符数据类型 ...
- ORACLE和SQL语法区别归纳
数据类型比较类型名称 Oracle SQLServer 比较字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb ...
- Oracle 数据库SQL性能查看
作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作.下面简单介绍下一些查看 ...
- 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)
基于Oracle的SQL优化(社区万众期待数据库优化扛鼎巨著) 崔华 编 ISBN 978-7-121-21758-6 2014年1月出版 定价:128.00元 856页 16开 编辑推荐 本土O ...
- Oracle 与Sql Server常用函数对比
来自:http://topic.csdn.net/u/20080704/08/b2b8c42f-b0d6-4cda-98b1-6e4a279b4ff8.html 感谢楼主 函数 SQLServer和O ...
- Oracle PL/SQL Articles
我是搬运工....http://www.oracle-base.com/articles/plsql/articles-plsql.php Oracle 8i Oracle 9i Oracle 10g ...
- SSIS结合BCP及SQL Server作业实现定时将数据导出打包实现数据同步
首先这个流程要实现的功能大致是: 有两台服务器,一台是对外网开发的,一台是内网的.那么很明显数据交互都是外网服务器在做,而这个流程要做的就是要将外网上面的数据定时同步到内网中. 我们依对其中某张表的操 ...
- Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件
一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...
- 你真的会玩SQL吗?简单的数据修改
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
随机推荐
- Java 、C# Excel模板,数据一对多,主从表关系,导入到数据库
思路 单表导入的比较容易,但是有的时候,可能会出现,一对多数据导入的,这个情况怎么办呢?先理解上面的图,后台获取数据的时候,除了"风险防控措施"外,其他字段先分组,"黄色 ...
- cf edu 133 D
题意 思路 根据题意,最开始可以想到一个二维的dp状态 用dp[i][j]表示跳了j次刚好到i的方案数 如果是跳了j次,那么这次应该要被k+j-1整除才行 那么这样状态转移就是 dp[i][j] = ...
- P1006
前面事情太多了,所以搁了很多的题没做 第一个不容易想的点就是这两条路是不会重叠的,所以可以转化成两条都从原点出发不相交的路径 第二点就是该如何去表示这两种路径,第一种是用四维数组存位置(这里非法解的递 ...
- Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源
1. Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源 @ 目录 1. Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向 ...
- 基于微信小程序的校园维修管理系统-开题报告参考
\n文末获取源码联系 感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 一.课题研究的目的和意义** 本研究开发基于微信小程序的物品维修系统,它不仅能实现专业的维 ...
- AI时代你一定要知道的Agent概念
这两年,随着人工智能(AI)和计算能力的发展,AI应用的落地速度大大加快.以ChatGPT为代表的AI应用迅速火遍全球,成为打工人的常用工具.紧接着,多模态.AI Agent等各种高大尚的名词也逐渐进 ...
- 业务场景---Token无感刷新
业务场景描述 假设用户正在填写一个复杂的表单,由于表单内容繁多,用户花费了很长时间才填完.这时,如果Token已经过期,系统会让用户重新登录,这种体验显然是非常糟糕的.为了避免这种情况,我们需要在To ...
- redis如何实现主从同步
redis实现主从同步分为两种:全量同步和增量同步:第一次连入集群的slave需要进行全量同步,那些断开后重连的slave需要进行增量同步 每个redis都有自己的replid,他们是master的标 ...
- ceph 002 ceph架构 ceph数据存储过程 ceph集群安装
ceph 架构 rgw:实现对象存储 (web的url和swift,s3接口) mon:集群的访问入口 (集群,同时工作,得同步信息.每个mon的ip不一样) mgr:监控 信息收集 web 界面 ( ...
- 【Java】【常用类】Calendar 日历类
Calendar 日历类,我居然念错发音,来,好好看下音标 ['kælɪndə] 卡琳达 public class DateTest { public static void main(Strin ...