问题标签 [bcp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5018 浏览

powershell - 帮我使用 powershell 和 bcp 将 CSV 加载到 SQL Server

我正在使用 bcp 从远处的其他人从另一个表导出的 CSV 加载一个表,并且遇到了一些问题。我原来的两个问题:一个导出的字段是一个需要以 varchar 字段结尾的 int,另一个字段需要用静态字符串填充。好吧,第一个没什么大不了的,Chad 的回答让我想到了@{n='Col3';e={'ABC'}}语法。但是我在正确加载数据时遇到了几个问题。

  1. 有时一个值可能没有空格,有时它可能。如何在 bcp 格式文件中指定分隔符?我问是因为大概我需要用引号括起来。

    一种。我应该用引号将中间 CSV 文件中的值包装起来吗?

  2. 在我的测试代码中,它将列标题和换行推入 Col1,第一行的实际值为 Col1。

  3. 在我实际的、未经处理的代码中,我进入String data, right truncation了第一行,尽管第二行插入正常。

无论如何,我从其他地方获得的初始 CSV 数据看起来像这样(注意:没有标题行)

目标SQL表是这样的

我需要将ABC123加载到123456Col1,将Export1加载到APPLE中。Export1是静态字符串。我在 Powershell 1.0 中这样做。Col2Col3Col4

编辑:乍得的 import-csv | export-csv 看起来很有希望,但它不喜欢缺少标题,并且 PS 1.0 不支持 -Header 选项。

编辑:上面的编辑描述以反映我是如何走到这一点的。四列表格和三列 CSV 显然是简化的。一个真正的列是一个城市,因此它可以包含简单的字符串或需要引用的字符串。此时我的 Powershell 1.0 代码如下。

0 投票
1 回答
748 浏览

sql-server - 在不知道数据类型的情况下从 SQL Server 中的平面文件创建表的方法?

有没有办法在不知道文件中列的数据类型的情况下将平面文件作为新表加载到 SQL Server 中?

我知道可以使用 BULK INSERT 加载平面文件数据,但必须首先创建一个与传入文件中的数据类型匹配的目标表。OPENROWSET 需要创建一个指定传入数据类型的格式文件。有没有办法让 SQL Server 自动内省文件、确定数据类型并一次性加载数据?

0 投票
1 回答
999 浏览

csv - SQL Server BCP 只插入一行?

我正在使用 FMT 文件将 csv 文件 BCP 到 SQL Server Box - 一切都很好,但只有 5 行文件的第一行被插入。

我认为这是最后一列终止符的换行设置 - 但如何查看和编辑 csv 文件中的换行?

0 投票
1 回答
730 浏览

windows - 正确的 BCP 语法

我是第一次使用 BCP。我有一个 XML 文件,需要将其导入到 SQL Server 中的新表中。这是使用 SQL Server 2008 和 BCP 版本 10.50.16。我通读了文档,但出现了 370,000 个错误!(这是一个非常大的文件)。当我打开错误日志时,我只看到一堆问号。

关于这个 XML 文件:它确实使用新行来描述行,但是,它使用空格字符来分隔字段。所以我不确定这是否是导致它失败的原因。失败消息是:

BCP 复制失败我希望它更具描述性。有没有办法获得更详细的错误信息?

否则,这是我的命令:

所有这些文件都在同一个目录中。我知道它说要指定完整的文件路径,但是由于它们都在同一个目录中,而且我还看到了另一个没有指定目录的示例,我认为这就足够了。

我也在没有格式文件的情况下尝试过这个,交互式地做,但得到同样的错误。

这是我的格式文件:

这是我的 SQL 表:

我已经从第 1 行开始尝试过。我很好奇 BCP 应该从哪一行开始?此 XML 的第 1 行以 Schema 和 ElementType 信息开头。但是第 107 行是 rs:data 部分的开始。

此 XML 文件的第一部分:

0 投票
1 回答
1658 浏览

c++ - 使用 bcp 获取可构建的 Boost 提取

我正在使用 bcp 从 Boost 中提取 Boost.Archive。不幸的是,我无法构建此提取物。Boost.Archive 不是一个只有头文件的库。

bjam 抱怨

有没有办法告诉 bcp 使用 bjam 构建提取(将 boost-build.jam 复制到正确的位置)?

0 投票
5 回答
5226 浏览

sql - 这个 bcp 实用程序有什么问题?

我正在尝试使用 bcp 实用程序将数据导出到文本文件中?我无法弄清楚我在这里做错了什么:-

它没有将任何数据写入文件。在结果框中我得到这个输出: -

用法:bcp {dbtable | 查询} {在 | 出| 查询 | 格式} 数据文件 [-m maxerrors] [-f 格式文件] [-e errfile] [-F firstrow] [-L lastrow] [-b batchsize] [-n 本机类型] [-c 字符类型] [-w 宽字符类型] [-N 保留非文本本机] [-V 文件格式版本] [-q 引用标识符] [-C 代码页说明符] [-t 字段终止符] [-r 行终止符] [-i 输入文件] [- o outfile] [-a packetsize] [-S 服务器名称] [-U 用户名] [-P 密码] [-T 可信连接] [-v 版本] [-R 区域启用] [-k 保持空值] [- E 保持标识值] [-h "load hints"] NULL [-h "load hints"] NULL

请帮忙。

0 投票
1 回答
3746 浏览

sql-server - 无法将大型平面文件导入 SQL Server 2008 表

我有一个 18GB 的​​平面文件(40,000,000 条记录),具有固定的列宽(无字段终止符),我想将其读入 SQL Server 2008 R2 表。除了包含数据的文本文件之外,我还获得了一个包含字段名称和长度的 Excel 文档。有 270 个字段,每条记录(每行)总共 465 个字符。使用 bcp 我创建了一个 fmt 文件,对我来说看起来不错。

等等

在 SQL Server 中,我想使用这个 fmt 文件将数据读入表中:

来自 SQL Server 的错误消息:

消息 4866,第 16 级,状态 7,第 1 行

批量加载失败。数据文件中第 1 行第 1 列的列太长。请验证是否正确指定了字段终止符和行终止符。

消息 7399,第 16 层,状态 1,第 1 行

链接服务器“(null)”的 OLE DB 提供程序“BULK”报告了错误。提供商没有提供有关该错误的任何信息。

消息 7330,第 16 层,状态 2,第 1 行

无法从链接服务器“(null)”的 OLE DB 提供程序“BULK”中获取行。

我尝试将最后一个字段的归档终止符更改为“\r”和“\r\n”我尝试在底部添加一个额外的字段:

没什么区别。

我一直无法在网上找到任何有帮助的东西。(建议在 fmt 文件中使用额外的空白行,但这并不能解决问题。我认为数据文件有行终止符,因为如果我使用 Excel 数据导入工具,我会看到一致长度的行。

有人可以帮忙吗?谢谢,克里斯

0 投票
2 回答
1044 浏览

sql-server - 当 SQL Server bcps 进入带有索引的空表时,它在内部做什么?

如果我有一个带有索引的空表并且我执行 bcp,SQL Server(内部)是否会删除/禁用索引、加载数据然后重新应用/启用/构建索引?

0 投票
2 回答
5150 浏览

sql-server-2005 - 使用参数运行 proc 时 BCP 函数序列错误

我一直在尝试创建一个存储过程,该存储过程使用动态 SQL 组装 bcp 命令以将数据从参数化存储过程导出到 csv 文件。

最初得到我认为是文件系统权限的主机数据文件访问问题。

现在,当我运行 proc 时,我始终会收到填充错误:

SQLState = S1010, NativeError = 0 错误 = [Microsoft][SQL Server Native Client 10.0]函数序列错误

proc代码如下:

我使用 SELECT @command 来获取组装命令进行分析。

已包含 calle proc 的参数名称,因此命令如下:

bcp "exec InternalML..sp_SelectMarketingListMembers @includeInService = NULL, @includeMLM = NULL, @includeQuoteNoodle = NULL, @netective = NULL, @cyberChex = NULL, @agentsAdvantage = NULL, @quoteNoodle = NULL, @mlmListSubscriber = NULL, @state = NULL" queryout C:\temp\test.csv -c -T -S SPKD18

在没有参数名称的情况下也使用了相同的 Function sequnc 错误消息:

bcp "exec InternalML.dbo.sp_SelectMarketingListMembers NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @state = NULL" queryout "C:\\temp\test.csv" -c -T -S SPKD18

关于为什么这不起作用的任何见解?顺便说一句,我已经通过 proc 运行 bcp 并将其复制到具有相同结果的命令提示符下。问题是我在互联网上找不到太多关于这个错误的信息,可能是因为它太通用了。

我可以直接在 SSMS 查询窗口中使用参数成功运行 InternalML.dbo.sp_SelectMarketingListMembers proc,所以我很确定它与 bcp 有关。

谢谢您的帮助

0 投票
4 回答
3476 浏览

sybase - sybase 15 是否支持 java 中的 bcp api?

很久以前我发现bcp只是一个小C程序,它调用sybase客户端api的特殊位来将大量数据移动到数据库中。它以速度的名义欺骗和窃取并跳过检查约束。太好了,我完全赞成。在 sybase 12 中,我注意到 api 暴露在 C 客户端库中,但不是 java 的。

我一直在寻找,但我没有发现任何说他们已经在 sybase 15 java 客户端库中实现了它。有谁知道这在sybase 15中是否可用?