使用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. go条件变量的使用和原理

    场景 最近写代码时碰到一个场景, 需要使用 map[int]struct{} 结构来存储task, map的key是task的id,随时可以增减.因为的确除了看书,基本上没使用过条件变量所以后面过了一 ...

  2. Asp.net 代码设置兼容性视图

    一.代码中设置兼容性 <summary> 兼容性视图 </summary> <param name="myPage"></param> ...

  3. [高清·非影印] Python机器学习经典实例(电子书+源码)

    ------ 郑重声明 --------- 资源来自网络,纯粹共享交流, 如果喜欢,请您务必支持正版!! --------------------------------------------- 下 ...

  4. vue 项目中assets 和static的区别

    一.Webpacked Assets 为了回答这个问题,我们首先需要了解Webpack如何处理静态资产.在 *.vue 组件中,所有模板和CSS都会被 vue-html-loader 及 css-lo ...

  5. 记一次git merge 事故

    最近发生在自己身上的一件矬事儿,一不小心把matser上别人的代码给冲掉了,事后追溯了下原因. 1.准备三个分支,分别从master拉取 realease/v1.0分支 和 realease/bugf ...

  6. angular异步获取数据后在ngOnInit中无法获取,显示undefined解决办法

    两种方法 1 通过*ngif动态加载要数据渲染的dom 2 通过路由导航resolve 第一种感觉太麻烦了,要是一个页面请求多个接口,那就不得不写多个*ngif,本人还是更倾向与第二种发法 具体步骤: ...

  7. python 笔记二

    17.进程线程 进程间通信方式:管道Pipe:队列Queue:共享内存Value.Array.Manager: 多进程同步:锁Lock.递归锁RLock.Condition(条件变量):事件event ...

  8. python(if判断)

    一.if判断 如果 条件满足,才能做某件事情, 如果 条件不满足,就做另外一件事情,或者什么也不做 注意: 代码的缩进为一个 tab 键,或者 4 个空格 在 Python 开发中,Tab 和空格不要 ...

  9. tp5 隐藏index.php

    原文——>链接 官方默认的.htaccess文件 <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews Rewri ...

  10. Linux将用户添加到组的指令

    原文:https://blog.csdn.net/youmatterhsp/article/details/80549683:           https://www.cnblogs.com/cl ...