使用notepad++/excle快速将cvs文件转换为insert语句技巧以及注意点
使用notepad++/excle快速将cvs文件转换为insert语句技巧以及注意点
业务场景
最近nc项目经理从第三方弄来了一个300w行的csv文件,让导入数据库做处理,出现了下列问题:
csv文件中的字段分隔符,默认使用,
进行分隔的,insert的字段个数必须和插入字段的个数对应上,错误的原因就是:存储的问题子当中,有用,
分隔的内容,导入的时候导致多一个字段,每次导入一部分就出错。
注意事项/问题:
csv文件不能用excle编辑保存,编辑后,出现格式乱码,可使用notepad++编辑保存;
拆分后的文件也不宜过大,否则进行字符替换的时候,编辑器会卡死;
由于使用转为insert语句导入的原因,空字符串在导入的过程中容易出错,所以讲空用
""
或者''
将内容包含住;特被注意转义字符,即
\+特殊字符
,在字段值末尾,导致sql语句结构破坏,sql语句不可用文件过大,excle/notepad++均无法打开,使用linux工具对文件进行按行拆分
#将文件上传到linux中,使用下面命令,total.csv为需要拆分的文件,company为拆分后的文件名
split -l 100000 total.csv company
一、使用notepad++转换sql语句
1.使用正则表达是将最后一个行最后的字符替换为"
;
"$"找到最后一个字符;
2.将最后一个字符替换为);
,及sql语句的结束语句;这一步和上一步虽然都是在末尾插入,但是要分开,猜测应该是字符转义的原因;
前两步效果:
将,
替换为","
,因为csv文件中如果为空值,会直接用,
隔开,不会区分字段的分割,
将开头换为"(
,记得要使用转义字符,不然无法替换
再将开头换为insert语句
,
最后结果:
二、使用excle替换
这次不用在意文件的格式,因为最后是保存sql语句,利用excle的公式在文档最后一行插入公式,生成需要的sql语句
下面是公式
=CONCATENATE("INSERT INTO `new1_copy`(`DWMC`, `DWDZ`, `ZZJGDM`, `DWDH`, `DWDJ`, `DWXZ`, `XZQY`, `AQZRR`, `DWLX`, `AQZRRSFZ`, `AQZRRDH`, `JZMJ`, `DWZSX`, `GIS_X`, `GIS_Y`, `Deleted`) VALUES ('",A1,"','",B1,"','",C1,"','",D1,"','",E1,"','",F1,"','",G1,"','",H1,"','",I1,"','",J1,"','",K1,"','",L1,"','",M1,"','",N1,"','",O1,"','",P1,"');")
如果数据量很大,下拉很慢,双击公式单元格左下角:
会自动往下生成
使用notepad++/excle快速将cvs文件转换为insert语句技巧以及注意点的更多相关文章
- 把表里的数据转换为insert 语句
当表里面有数据时,怎么把表里的数据转换为insert 语句 (从别人那里看来的用SQLServer 2008 R2测试可用) CREATE PROC spGenInsertSQL @TableName ...
- BAT 快速删除CVS文件和拷贝最近修改文件的目录结构
相信大家在操作大量文件的的时候,经常会遇到一些手动很难操作的情况 比如有CVS版本控制下每个文件夹下都有一个CVS文件夹,一个个手工删除肯定很费劲,我们都是懒人,还是用工具解决吧.不用重新写程序,直接 ...
- 表数据转换为insert语句
/* 对象:导出物理表数据为Insert语句 描述:可以传递条件精确导出sql 加条件的前提是只知道相应的字段名及类型 */ from sysobjects where name ='proc_ins ...
- 将excle表中得数据生成insert语句插入到数据库中
第一步:输入公式 第二步:拽住右下角得+往下拖拽
- 【转】cvs2svn 把CVS档案库转换为SVN档案库
转载地址:http://jackdown.blog.sohu.com/66646130.html 在linux下的操作 1).安装 下载:Python 2.0 地址:http://www.pyth ...
- 使用kompose 快速转换dokcer-compose 文件为k8s deploy 文件
kompose 是一个不错的快速转换docker-compose 文件为k8s 部署yaml文件的工具,使用次工具我们 可以将简单的docker-compose文件,转换为复杂的yaml文件,对于使用 ...
- windows下快速修改host文件
windows下快速修改host文件 win+r 输入 notepad c:\Windows\System32\drivers\etc\hosts
- Python 实现把 .cvs 文件保存为 Excel 文件
# 导入可以把 CVS 转换为 Excel 的外部模块 import pandas as pd # 读出 csv 文件的内容 csv = pd.read_csv('Data.csv', encodin ...
- QCustomplot使用分享(八) 绘制图表-加载cvs文件
目录 一.概述 二.效果图 三.源码讲解 1.源码结构 2.头文件 3.移动游标 4.设置坐标轴矩形个数 5.添加图表数据 6.设置折线图类型 6.其他函数 四.测试方式 1.测试工程 2.测试文件 ...
随机推荐
- Windows 下删除 Docker 容器的方法
Issue: 删除命令执行失败 如果在 CMD 命令提示符下删除容器可能失败,可切换至 PowerShell 中执行成功. unknown shorthand flag: 'a' in -a See ...
- Json 文件读写以及和IniFile 转换
JSON 文件是越来越受欢迎了,以前程序配置文件用Ini,Ini 简练,简单.方便,但是也有不少缺点,比如,没有 JSON 直观,无法存储复杂点的数据类型. 于是乎,我封装了一个TJsonFile 的 ...
- Vue框架基础02
摘要 条件指令 循环指令 评论案例 实例成员之computed 实例成员之watch 分隔符 组件:局部组件和全局组件 局部组件与全局组件之间信息传输 一.条件指令扩展 <!DOCTYPE ht ...
- Shell编程学习记录
一.shell中单引号和双引号的区别: 1).单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原 封不动的使用,唯一需要注意的点是不允许引用自身: 2).双引号属于弱引用, ...
- InfoGan笔记
InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets ...
- Linux进程的五个段
目录 数据段 代码段 BSS段 堆(heap) 栈 数据段 用来存放可执行文件中已初始化的全局变量,换句话说就是存放程序静态分配的变量和全局变量: 代码段 代码段是用来存放可执行文件的操作指令,也就是 ...
- JavaNetty心跳监控
import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import java ...
- vmware的三种网络模式讲解
vmware有三种网络设置模式,分别是Bridged(桥接),NAT(网络地址转换),Host-only(私有网络共享主机) 1.Bridged(桥接) 桥接模式默认使用的是:VMnet0 什么是桥接 ...
- 图解Apache Mina
Apache MINA 是一个用于简化开发构建高性能.高可扩展的网络应用框架.通过JAVA NIO在各种传输协议(如:TCP/IP.UDP/IP)上提供抽象的事件驱动异步API Apache MINA ...
- spring boot 使用GraphQL
在此之前需要简单了解GraphQL的基本知识,可通过以下来源进行学习 GraphQL官方中文网站 :https://graphql.cn GraphQL-java 官网:https://www.gra ...