使用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语句技巧以及注意点的更多相关文章

  1. 把表里的数据转换为insert 语句

    当表里面有数据时,怎么把表里的数据转换为insert 语句 (从别人那里看来的用SQLServer 2008 R2测试可用) CREATE PROC spGenInsertSQL @TableName ...

  2. BAT 快速删除CVS文件和拷贝最近修改文件的目录结构

    相信大家在操作大量文件的的时候,经常会遇到一些手动很难操作的情况 比如有CVS版本控制下每个文件夹下都有一个CVS文件夹,一个个手工删除肯定很费劲,我们都是懒人,还是用工具解决吧.不用重新写程序,直接 ...

  3. 表数据转换为insert语句

    /* 对象:导出物理表数据为Insert语句 描述:可以传递条件精确导出sql 加条件的前提是只知道相应的字段名及类型 */ from sysobjects where name ='proc_ins ...

  4. 将excle表中得数据生成insert语句插入到数据库中

    第一步:输入公式 第二步:拽住右下角得+往下拖拽

  5. 【转】cvs2svn 把CVS档案库转换为SVN档案库

    转载地址:http://jackdown.blog.sohu.com/66646130.html 在linux下的操作 1).安装 下载:Python 2.0   地址:http://www.pyth ...

  6. 使用kompose 快速转换dokcer-compose 文件为k8s deploy 文件

    kompose 是一个不错的快速转换docker-compose 文件为k8s 部署yaml文件的工具,使用次工具我们 可以将简单的docker-compose文件,转换为复杂的yaml文件,对于使用 ...

  7. windows下快速修改host文件

    windows下快速修改host文件 win+r  输入 notepad c:\Windows\System32\drivers\etc\hosts

  8. Python 实现把 .cvs 文件保存为 Excel 文件

    # 导入可以把 CVS 转换为 Excel 的外部模块 import pandas as pd # 读出 csv 文件的内容 csv = pd.read_csv('Data.csv', encodin ...

  9. QCustomplot使用分享(八) 绘制图表-加载cvs文件

    目录 一.概述 二.效果图 三.源码讲解 1.源码结构 2.头文件 3.移动游标 4.设置坐标轴矩形个数 5.添加图表数据 6.设置折线图类型 6.其他函数 四.测试方式 1.测试工程 2.测试文件 ...

随机推荐

  1. json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (ch

    阐述 想要把一个字符串转化成字典对象,在使用json的过程出现如此报错 解决方法 将字符串里面的单引号改为双引号

  2. Linux基础系统优化(一)

    前言 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ifconfig 查询.设置网卡和ip等参数 ifu ...

  3. 15 IO流(十二)——数据流Data InputStream/OutputStream 未学会

    数据流的引入 Data流的父类是Filter抽象基类,也就是说Data流是装饰流. 数据流可以将数据的类型也一起传输. 数据流的读取写入顺序(数据类型的读写顺序)需要一致. 未完成代码 /** *Da ...

  4. enum类型的标签内容根据语言的取法

    昨天做了一个开发,说要取enum里面英文label 例如  JournalType   枚举值有   transfer\profit/loss 但是在中文的AX系统时会显示“转移\盈亏”, 但是客户又 ...

  5. [LOJ#3119][Luogu5405][CTS2019]氪金手游(DP+容斥)

    先考虑外向树的做法,显然一个点在其子树内第一个出现的概率等于它的权值除以它子树的权值和.于是f[i][j]表示i的子树的权值和为j时,i子树内所有数的相互顺序都满足条件的概率,转移直接做一个背包卷积即 ...

  6. redis GEO的使用

    一.概念 redis的GEO特性在Redis3.2版本发布,这个功能可以将用户给定的地理位置信息储存起来,并对这些信息进行操作. GEO常用语LBS(Location Based Service),基 ...

  7. mpvue + vant + flyio 小程序项目总结

    vant 的使用 我开始是 npm 导入,然后 import,使用不了. 找了各种方法,最后还是下载文件,然后找到 dist 文件夹,复制到项目里,我是放在 static 文件夹,文件名 dist 重 ...

  8. 物流管理系统(SSM+vue+shiro)【前后台】

    一.简单介绍项目 该项目是属于毕业设计项目之一,有前台的用户下单.有司机进行接单.有管理员进行操作后台,直接进入主题 毕设.定制开发 联系QQ:761273133 登录主页: 手机号码+验证码登录 或 ...

  9. Attribute与Property关系

    总的来说,其实是HTML Attribute 与 DOM property之间的关系. 1 什么是Property? JS DOM Object对象有property.一个property可能是不同数 ...

  10. angular解决跨域问题

    通过angular自身的代理转发功能 配置package.json  启动项目通过npm start启动,会自动启动代理服务npm start