iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库中如何处理带有引号文本限定符的CVS
  • 415
分享到

数据库中如何处理带有引号文本限定符的CVS

2024-04-02 19:04:59 415人浏览 八月长安
摘要

这篇文章给大家分享的是有关数据库中如何处理带有引号文本限定符的CVS的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 公司需要导入数据到MSsqlSE

这篇文章给大家分享的是有关数据库中如何处理带有引号文本限定符的CVS的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

公司需要导入数据到MSsqlSERVER,但是对方给出的奇葩cvs文件是这样的:

aa,bb,cc,dd,ee
1,"this 
is a",1,"this is a",1
2,"this is
" a",2,"this is a",2

普通的bcp处理会有悲催的错位,而且mssql个坑货也不能像Mysql自动区分文本限定符的"
研究了一下,用这个方式处理:

1. 在DB里建立对应的表

此处)折叠或打开


  1. exec xp_cmdshell 'bcp test.dbo.table_1 fORMat nul -t "," -c -x -f C:\test\table_1.xml  -U****  -P****  '

  2. Go

3,修改xml,请注意高亮部分。 这个你们用ie来打开的话也可以明确的看到"
此外还有这些特殊字符,大家先备着,万一哪天被不靠谱的猪队友坑了还能用。
单引号是' 
双引号是" 
&是&
>是>
<是&lt;
空格是&nbsp; 等

点击(此处)折叠或打开

  1. <?xml version="1.0"?>

  2. <BCPFORMAT xmlns="Http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  3.  <RECORD>

  4.   <FIELD ID="1" xsi:type="CharTerm" TERMINATOR=",&quot;" MAX_LENGTH="12"/>

  5.   <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="&quot;," MAX_LENGTH="50" COLLATION="Chinese_PRC_CI_AS"/>

  6.   <FIELD ID="3" xsi:type="CharTerm" TERMINATOR=",&quot;" MAX_LENGTH="12"/>

  7.   <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="&quot;," MAX_LENGTH="50" COLLATION="Chinese_PRC_CI_AS"/>

  8.   <FIELD ID="5" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="12"/>

  9.  </RECORD>

  10.  <ROW>

  11.   <COLUMN SOURCE="1" NAME="aa" xsi:type="SQLINT"/>

  12.   <COLUMN SOURCE="2" NAME="bb" xsi:type="SQLVARYCHAR"/>

  13.   <COLUMN SOURCE="3" NAME="cc" xsi:type="SQLINT"/>

  14.   <COLUMN SOURCE="4" NAME="dd" xsi:type="SQLVARYCHAR"/>

  15.   <COLUMN SOURCE="5" NAME="ee" xsi:type="SQLINT"/>

  16.  </ROW>

  17. </BCPFORMAT>

然后再把cvs的首列的标题去掉, 虽说微软说可以通过firstrow来指定第一行,但我之前用了firstrow=2居然是从第二行开始的。
如果不去掉,会报错,由于赶时间,报错测原因和具体原理暂时不考虑再去深入研究了,之后有时间慢慢测。

4. 从cvs里取值,这里我用了openrowset来做验证,其实这个时候也可以直接用bcp加指定 format file来进行导入操作了。

点击(此处)折叠或打开

  1. select * from

  2. openrowset(bulk 'C:\Booker\test.csv', --要读取的文件路径和名称

  3.     formatfile='C:\Booker\Table_1.xml', --格式化文件的路径和名称

  4.      --fieldterminator='","',

  5.     firstrow = 1,--要载入的第一行

  6.     --lastrow  = 1000, --要载入的最后一行,此值必须大于firstrow

  7.     maxerrors = 100, --在加载失败之前加载操作中最大的错误数

  8.     --errorfile ='c:\wc_error1.txt', --存放错误的文件

  9.     rows_per_batch = 10000 --每个批处理导入的行数

  10.     ) as t


你需要的结果有了
数据库中如何处理带有引号文本限定符的CVS
文本格式下就是这么个东东
aa          bb                                                 cc          dd                                                 ee
----------- -------------------------------------------------- ----------- -------------------------------------------------- -----------
1           this, 
is, a                                      1           this is a                                          1
2           this is
" a                                       2           this is a                                          2



感谢各位的阅读!关于“数据库中如何处理带有引号文本限定符的CVS”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

您可能感兴趣的文档:

--结束END--

本文标题: 数据库中如何处理带有引号文本限定符的CVS

本文链接: https://www.lsjlt.com/news/63718.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么显示表的字段
    如何显示 oracle 表的字段 在 Oracle 数据库中,可以使用 DESC 命令显示表的字段。 语法: DESC table_name 参数: table_name:要显示字段的表...
    99+
    2024-05-14
    oracle
  • oracle怎么看所有的表
    在 oracle 数据库中查看所有表的步骤:连接到数据库运行查询:select table_name from user_tables; 如何使用 Oracle 查看所有表 ...
    99+
    2024-05-14
    oracle
  • oracle怎么显示行数
    如何使用 oracle 显示行数 在 Oracle 数据库中,有两种主要方法可以显示行数: 1. 使用 COUNT 函数 SELECT COUNT(*) FROM table_n...
    99+
    2024-05-14
    oracle
  • oracle怎么显示百分比
    oracle中显示百分比的方法有:使用百分号“%”;使用to_char()函数;使用format()函数(oracle 18c及更高版本);创建自定义函数。 Oracle 显...
    99+
    2024-05-14
    oracle
  • oracle怎么删除列
    oracle 中删除列的方法有两种:1)使用 alter table table_name drop column column_name 语句;2)使用 drop colum...
    99+
    2024-05-14
    oracle
  • sql怎么查看表的索引
    通过查询系统表,可以获取表的索引信息,包括索引名称、是否唯一、索引类型、索引列和行数。常用系统表有:mysql 的 information_schema.statistics、postg...
    99+
    2024-05-14
    mysql oracle
  • sql怎么查看索引
    您可以使用 sql 通过以下方法查看索引:show indexes 语句:显示表中定义的索引列表及其信息。explain 语句:显示查询计划,其中包含用于执行查询的索引。informat...
    99+
    2024-05-14
  • sql怎么查看存储过程
    如何查看 sql 存储过程的源代码:使用 show create procedure 语句直接获取创建脚本。查询 information_schema.routines 表的 routi...
    99+
    2024-05-14
  • sql怎么查看视图表
    要查看视图表,可以使用以下步骤:使用 select 语句获取视图中的数据。使用 desc 语句查看视图的架构。使用 explain 语句分析视图的执行计划。使用 dbms 提供...
    99+
    2024-05-14
    oracle python
  • sql怎么查看创建的视图
    可以通过sql查询查看已创建的视图,具体步骤包括:连接到数据库并执行查询select * from information_schema.views;查询结果将显示视图的名称、...
    99+
    2024-05-14
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作