自动将 CSV 文件导入 SQL Server [重复]

2024-03-02

我正在尝试将许多不同的 csv 文件导入 SQL Server 2008R2 数据库

文件中的数据以逗号分隔。 我对文件格式没有发言权。

有些列是文本,并用双引号分隔(“就像在 Excel 中一样”)。 这些列包含的文本可能在文本中包含额外的逗号(“但是,它让我发疯”)。

我尝试使用批量插入将文本文件加载到多个 SQL 表中。但是,文本列中嵌入的逗号会导致其崩溃。 SQL Server 2017 包含设置选项FORMAT =CSV and FIELDQUOTE = '"'但我坚持使用 SQL Server 2008R2。

我可以使用 DTS/SSIS,但它将 VS 版本链接到 SQL 版本。因此,如果我在 VS2012 或 VS2010 中编写 SSIS,它可能无法与我们的 SQL Server 2008R2 一起工作。而且我认为我们还没有任何 VS2008。

那么导入这些 CSV 文件的下一个最佳方法是什么?

批量上传是将六个不同的 csv 文件上传到不同表中的最简洁的方法。

我是否预处理 csv 文件并将逗号替换为管道。如果是这样,我如何知道要替换哪些逗号(正则表达式?)? 或者我是否在.Net 中完成整个导入?这既混乱又耗时。


您所需要的只是一个 SQL 格式文件。尽管有一些关于如何使用格式文件的链接,但我只找到了一个解释它如何正常工作的链接,其中包括带有逗号的文本字段。

这是 sql 脚本中使用的语法

BULK INSERT raw.routes FROM N'C:\WhereMyTextFileis\Import.txt'  
WITH ( 
    FORMATFILE = N'C:\WhereMyFormatFileIS\MyFormat.fmt'
    ,FIRSTROW = 2

)

这是我的格式文件的内容

10.0
8
1       SQLCHAR             0       50      ","         1     RouteID            ""
2       SQLCHAR             0       50      ",\""       2     RouteShortName     Latin1_General_CI_AS
3       SQLCHAR             0       100      "\","      3     RouteLongName      Latin1_General_CI_AS
4       SQLCHAR             0       200      ","        4     RouteDescription  ""
5       SQLCHAR             0       50      ","         5     RouteType         ""
6       SQLCHAR             0       2000      ","       6     RouteURL          ""
7       SQLCHAR             0       100      ","        7     RouteColour       ""
8       SQLCHAR             0       100      "\r\n"     8     RouteTextColour   ""

看起来很奇怪的“,”“”是删除引用文本列RouteShortName开头的双引号,“”,”删除引用文本列RouteShortName末尾的引号。但重要的一点是逗号保存在列数据内容中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动将 CSV 文件导入 SQL Server [重复] 的相关文章

  • SQL Server - 在设置 COLLATE Latin1_General_CS_AS 的情况下搜索不区分大小写

    家长提问 https stackoverflow com questions 50974562 sql server update to match and replace only exact words感谢 Iamdave 部分问题得到
  • 使用 PowerShell 检查 AD 中是否存在组

    我想为该组创建代码来检查该组是否存在 但是 我无法开始工作 因为它成功地将用户和组的部分成员仅添加到一个组中 而不是其他组 因为我设法在活动目录中创建一个组并从 csv 中读取 这是我的代码和结果 似乎在成功添加用户并添加组成员后我总是收到
  • FindAsync 很慢,但是延迟加载很快

    在我的代码中 我曾经使用加载相关实体await FindAsync 希望我能更好地遵守 C 异步指南 var activeTemplate await exec DbContext FormTemplates FindAsync exec
  • SQL Server:将 varchar 转换为十进制(也考虑指数表示法)

    我需要转换表的数据并进行一些操作 其中一种列数据类型是Varchar 但它存储decimal数字 我正在努力转换varchar into decimal 我努力了CAST TempPercent1 AS DECIMAL 28 16 问题是数
  • 我可以在 R 中并行读取 1 个大 CSV 文件吗? [复制]

    这个问题在这里已经有答案了 我有一个很大的 csv 文件 需要很长时间才能阅读 我可以使用 parallel 或相关的包在 R 中并行读取此内容吗 我尝试过使用 mclapply 但它不起作用 根据OP的评论 fread来自data tab
  • 为什么 Parsec 的 sepBy 停止并且不解析所有元素?

    我正在尝试解析一些逗号分隔的字符串 该字符串可能包含也可能不包含具有图像尺寸的字符串 例如 hello world 300x300 good bye world 我写了下面的小程序 import Text Parsec import qua
  • 如何在 Linux 中使用单行命令获取 Java 版本

    我想通过单个命令获取 Linux 中的 Java 版本 我是 awk 的新手 所以我正在尝试类似的事情 java version awk print 3 但这不会返回版本 我将如何获取1 6 0 21从下面的Java版本输出 java ve
  • 自动解析 PHP,将 PHP 代码与 HTML 分离

    我正在开发一个大型 PHP 代码库 我想将 PHP 代码与 HTML 和 JavaScript 分开 我需要对 PHP 代码进行多次自动搜索和替换 对 HTML 进行不同的搜索和替换 对 JS 进行不同的自动搜索和替换 有没有一个好的解析器
  • 如何授予用户访问 SQL Server 中的 sys.master_files 的权限?

    我需要授予数据库用户读取权限sys master files桌子 我怎样才能做到这一点 目前用户拥有以下权限 Calling SELECT on sys master files返回空结果 我还使用以下命令测试了相同的查询sa用户按预期工作
  • C# 事务中的事务

    我正在使用 C 将发票的平面文件导入到数据库中 如果遇到问题 我将使用 TransactionScope 回滚整个操作 这是一个棘手的输入文件 因为一行不一定等于一条记录 它还包括链接记录 发票将包含标题行 行项目和总计行 有些发票需要跳过
  • 一组记录中某些值相同的唯一约束

    DBMS MS Sql Server 2005 标准版 我想创建一个表约束 以便只有一个记录在表的子集中具有特定值 其中行共享特定列中的值 这可能吗 Example 我的 myTable 中有一些记录 其中有一个非唯一的外键 fk1 以及一
  • SQL分组和总结

    我的表如下所示 income date productid invoiceid customerid 300 2015 01 01 A 1234551 1 300 2016 01 02 A 1234552 1 300 2016 01 03
  • 在 SQL Server 中选择条件的值[重复]

    这个问题在这里已经有答案了 在查询选择中 我想显示字段是否满足条件的结果 想象一下我有一张名为stock 该表有一列告诉我库存中每种商品的数量 我想做的是这样的 SELECT stock name IF stock quantity lt
  • 导致聚集索引扫描的日期参数

    我有以下查询 DECLARE StartDate DATE 2017 09 22 DECLARE EndDate DATE 2017 09 23 SELECT a col1 a col2 b col1 b col2 b col3 a col
  • 对 ExecuteNonQuery() 的单次调用是原子的

    对 ExecuteNonQuery 的单次调用是否是原子的 或者如果单个 DbCommand 中有多个 sql 语句 那么使用事务是否有意义 请参阅我的示例以进行说明 using var ts new TransactionScope us
  • csv格式是常规语法还是上下文无关语法?

    我目前正在编写一个 csv 解析器 csv 格式的定义由下式给出RFC4180 https www rfc editor org rfc rfc4180这是由 ABNF 定义的 所以csv的定义绝对是上下文无关语法 不过我想知道csv是否是
  • VBA仅清除数据透视表缓存,但保留数据透视表结构

    如何使用VBA清除数据透视表缓存 但不破坏数据透视表结构 我的数据透视表已连接到外部数据源 SQL 源决定哪个用户应该查看数据的哪一部分 当表刷新时 源会填充该表 我想保存 Excel 文件并使用干净的数据透视表 内部没有数据 分发它 结果
  • 是否有一个实用程序可以在给定 ANTLR 语法的情况下生成匹配的字符串?

    我有一个 ANTLR 语法 我想模 糊我的解析器 您是否正在寻找 CFG 语法的生成 IE 语法接受的字符串的生成 这可能是检查语法正确性的好主意 但请记住 可接受的字符串集很可能是无限的 任何真正严重的错误应该已经在语法规范中显而易见 并
  • 查找给定表的哪些行被锁定以及谁在 SQL Server 中锁定这些行

    有没有办法找出 SQL Server 2008 中特定表的哪些行被锁定 我还想知道锁定它们的用户 sys dm tran locks http msdn microsoft com en us library ms190345 aspx 正
  • PySpark:如何将带逗号的列指定为小数

    我正在使用 PySpark 并加载csv文件 我有一列包含欧洲格式的数字 这意味着逗号替换点 反之亦然 例如 我有2 416 67代替2 416 67 My data in csv file looks like this ID Reven

随机推荐

  • REST 客户端未在沙箱中生成 Webhook 事件

    我无法让 Paypal 提供的 REST 客户端 客户端 js 触发沙箱中的 webhook 事件以在我的服务器应用程序上接收付款确认 这是我能做 已经做的 我在沙箱中创建了一个 REST 应用程序 我已订阅所有 Webhook 事件 我可
  • Android Play Console:当其他轨道中的版本代码较高时,内部测试轨道不可用

    问题中的答案Android Play 控制台 内部测试版本 密切测试 它是如何运作的 https stackoverflow com questions 65728704 android play console internal test
  • 如何根据IP地址控制对BigQuery的访问?

    有没有办法通过 IP 地址控制对 BigQuery 数据集的访问 我假设只有特定服务器或全局 IP 地址可以使用服务帐户密钥访问 BigQuery 数据集 也许 Google 员工会在这里纠正我 但我认为目前不可能对数据集访问进行 IP 过
  • 使用Python的黎曼曲面图[重复]

    这个问题在这里已经有答案了 我有一个复杂的矩阵 看起来像 H w1 complex 0 g1 k k w2 complex 0 g2 正如本文所讨论的paper https www nature com articles s41563 01
  • 为什么我可以从“eval”调用“print”

    对于代码 usr bin python src print import os obj compile src exec eval obj builtins False 我得到输出 Traceback most recent call la
  • 后藤此时却出乎意料——批处理

    我正在尝试制作一个基于批处理文本的游戏 但刚开始写就遇到了以前从未遇到过的问题 menu the game menu opens when the game starts cls echo This game is still being
  • ActiveSupport 中 mattr_accessor 和 cattr_accessor 之间的区别?

    我无法通过查看源代码来弄清楚两者之间的区别cattr and mattr 分别在类和模块中提供的方法 我读过这个问题 Rails 模块中的 mattr accessor 是什么 https stackoverflow com questio
  • 动态选择 WTForms Flask SelectField

    我正在尝试使用 FlaskForms 将 userID 变量传递给 WTForms 首先 我将展示工作正常的代码 然后展示我需要修改的内容 我不知道如何修改的部分 我正在添加与某个组关联的新名称 FlaskForm模型 class AddN
  • 用于解析单个键的正则表达式:Javascript 中的 JSON 值

    我想看看是否可以查找个人keys出于一个JSONJavascript 中的字符串并返回它Value with Regex 有点像建造一个JSON搜索工具 想象一下以下 JSON Name Humpty Age 18 Siblings Dra
  • 如何从c中的字符串数组中访问单个字符?

    只是想了解如何寻址字符串数组中的单个字符 另外 这当然会让我总体上理解指向指针下标的指针 如果我有char a我想到达第二个字符串的第三个字符 这有效吗 a 1 2 看来应该 几乎 但不完全是 正确答案是 a 1 2 因为您需要首先取消对实
  • Netbeans 7 调色板为空?如何恢复呢?

    我在 Kubuntu 12 04 上使用 Netbeans 7 我这样启动 Netbeans netbeans cp a usr share java xercesImpl jar Netbeans 和 Kubuntu 12 04 已知问题
  • 有没有办法使用正则表达式来匹配引号之外的文本模式?

    正如标题中所述 有没有一种方法可以使用正则表达式来匹配出现在引号之外的文本的文本模式 理想情况下 考虑到以下示例 我希望能够匹配引号之外的逗号 而不是引号内的逗号 这是一些文本 后面是 文本 用引号引起来 or 这是一些文本 后面是 文本
  • 内核级别的 Docker 命名空间

    如何区分 docker 容器的 pid 1 17 等与主机的 1 17 等 pid 以及当我们在 docker 容器内创建新进程时发生的所有内核更改是什么 如何在宿主机中看到docker内部的进程 如何区分docker容器的pid 1 17
  • 使用 quosure 作为 by 参数连接数据集

    我正在尝试编写一个自定义函数 该函数将使用 quosures 作为 left join 函数的 by c 部分中的参数来连接两个数据集 这是我当前对该函数的尝试 在 by c left index right index 部分失败 left
  • 如何使用 javascript 替换字符串中所有出现的变量?

    我正在尝试使用 javascript 替换字符串中所有出现的变量 这不起作用 var id 1 var re new RegExp id g var newHtml oldHtml replace re 2 这仅替换第一次出现的 id va
  • 按随机顺序对数组列表进行排序

    我正在编写一个纸牌游戏 我有一个ArrayList持卡 Object 在哪里 他们每个人都有自己的 id 由于我想让这个游戏支持多人模式 我必须以某种方式在两个玩家之间发送 接收游戏进度 现在 如果我在一侧洗牌 我必须在另一侧做同样的事情
  • 使用 Nginx 设置 Laravel

    我正在尝试设置Laravel http laravel com 可使用的 PHP 框架Nginx http wiki nginx org Main 这是我的目录结构 project application laravel public in
  • 获取 Azure AD B2C 策略的 SAML 元数据时出错 - AADB2C90022

    在 Azure AD B2C 中设置自定义策略以连接到 ADFS 身份提供程序 这需要一个 SAML 元数据端点 如下面链接的文档中所指定 https learn microsoft com en us azure active direc
  • 为什么 XHTML 中的


    不同?

    这是 HTML 页面的完整源代码 one br two br three br four 谁能解释为什么当我在 IE8 或 chrome 中查看页面时 三 和 四 之间会出现额外的空行 我认为标准应该让所有浏览器看起来都一样 据我所知 这个
  • 自动将 CSV 文件导入 SQL Server [重复]

    这个问题在这里已经有答案了 我正在尝试将许多不同的 csv 文件导入 SQL Server 2008R2 数据库 文件中的数据以逗号分隔 我对文件格式没有发言权 有些列是文本 并用双引号分隔 就像在 Excel 中一样 这些列包含的文本可能