问题标签 [bulkinsert]

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 回答
3447 浏览

python - 在 Python 中将文本文件导入 SQL Server

我正在编写一个 python 脚本,它将对文本文件进行一些处理。作为该过程的一部分,我需要将制表符分隔文件的每一行导入到本地 MS SQL Server (2008) 表中。我正在使用 pyodbc,我知道该怎么做。但是,我对执行它的最佳方式有疑问。

我将遍历文件,为文件的每一行创建一个 cursor.execute(myInsertSQL)。有没有人看到任何问题等待提交语句,直到所有记录都被循环(即在循环之后执行 commit() 而不是在每个单独执行之后的循环内)?我问的原因是某些文件将有超过 5000 行。我不知道尝试“保存它们”并立即提交所有 5000 是否会导致问题。

我对python相当陌生,所以我还不知道所有这些问题。

谢谢。

0 投票
1 回答
1988 浏览

sqlite - 来自C的sqlite3批量插入?

我遇到了 .import 命令来执行此操作(批量插入),但是是否有可以使用 sqlite3_exec() 执行的查询版本。

我只想将一个小文本文件的内容复制到一个表中。

下面这个查询版本,

“.import demotab.txt mytable”

0 投票
5 回答
15473 浏览

c# - 带有可选文本限定符的批量插入

我正在使用批量插入将 csv 导入数据库。它是逗号分隔的 csv 文件。所有字段都没有文本限定符。

但有些字段可能有逗号作为数据的一部分。例如,地址字段值。这些值用双引号括起来。只有当字段值中包含逗号时才会出现这些双引号,否则值不会被双引号包围。因此,在某些行中,ADDRESS 值用双引号括起来,但在其他行中则不是。有没有办法在批量插入命令中指定文本限定符?

我尝试使用格式文件选项进行批量插入。

但我无法将双引号作为格式文件中的可选文本限定符提及。

PS:这个函数实际上是更大模块的一部分,它是用c#编写的。批量插入命令是从 c# 调用的。

csv 文件来自另一个自动化系统的电子邮件。我无法控制 csv 文件的格式。大约有 150 列。每个 csv 文件中平均有 12000 行。忘记指定数据库。它是 SQL Server 2005。

0 投票
4 回答
2859 浏览

c# - 快速插入 SQL 数据和相关行的最佳方法是什么?

我需要编写一些代码来插入大约 300 万行数据。
同时我需要插入相同数量的伴随行。

即架构如下所示:

我的第一次尝试是这样的:

显然这非常慢,所以我现在使用这样的东西:

但这不允许我添加相应的“属性”行。

我认为最好的解决方案可能是添加一个像这样的存储过程,它通常可以让我进行批量插入(或至少多次插入,但我可能会以某种方式禁用登录存储过程以提高性能),然后返回对应的id。

谁能想到更好的(即更简洁,性能几乎相同)的解决方案?

0 投票
1 回答
410 浏览

cross-platform - 跨平台应用程序应允许文本文件获取的合理最大大小是多少?

跨平台应用程序可以允许文本文件获取的合理最大大小是多少?我知道这是一个过于简单的问题,所以请允许我解释一下。

我的团队正在为客户端实现一个批量加载接口,以将数据加载到我们的数据库中。它将写出一个 CSV 文件,然后将该文件加载到适当的数据库中(此时是 Oracle 或 SQL Server)。我们可能要处理相对较多的记录。

在开始将这些文本文件分解为多个文本文件之前,我应该对这些文本文件的大小进行任何限制吗?目前,我们正在部署到 Linux 和 Windows,但我们也有使用 OS X 的开发人员。另外,我们的一些客户使用这些操作系统的版本有些过时。我想这取决于我们要连接的操作系统、文件系统和 RDBMS。为了简单起见,我不想尝试为每个单独的平台设置一个限制,而是只设置一个总体限制(只要该限制不过分限制)。这甚至是必要的,还是我可以全面设置上限?

0 投票
3 回答
10778 浏览

sql - SQL 导入跳过重复项

我正在尝试将批量上传到 SQL 服务器数据库中。源文件有我想删除的重复项,所以我希望该操作会自动上传第一个,然后丢弃其余的。(我设置了一个唯一的键约束)。问题是,一旦尝试重复上传,整个事情就会失败并回滚。有什么办法可以告诉 SQL 继续运行吗?

0 投票
4 回答
9067 浏览

sql-server - SQL Server 大容量插入失败(网络相关)

我对 SQL Server 相当陌生。

我正在尝试使用 SQL Server Management Studio (2005) 中的命令批量插入表:

使用(FIELDTERMINATOR = '|')从 'c:\text.txt' 批量插入表 1

我得到错误:

消息 4860,级别 16,状态 1,行 1 无法批量加载。文件“c:\text.txt”不存在。

我很肯定该文件确实存在。

我感觉它正在本地硬盘驱动器上寻找服务器所在位置的文件。是这样吗?如果是这样,您通常如何解决这个问题?(请注意,我在输入文本文件的位置时尝试指定我的 PC 的网络地址,但我得到一个权限错误。另外,我事先知道我的公司不允许将文件放置在服务器上)。

0 投票
1 回答
1352 浏览

sql-server-2005 - 如何在 sql server 2005 中批量插入表中

我有一个存储过程,它需要一个 ntext 字段,其中传递了一些记录。假设有如下表 t。

我将发送另外两条记录为 '4|Tom|Developer; 5|约翰|团队负责人;' 上面的字符串包含由“|”分隔的列值 并且行由';'分隔。因此,如果我将字符串作为storedproc 的ntext 类型参数传递并且需要将行插入到表中,那么该怎么做呢?

在 sql server 2005 的表中实现批量插入的最佳方法是什么?

0 投票
1 回答
706 浏览

sql-server - 如何修复此 MSS 2008 BULK INSERT 日期时间精度错误?

MS SQL Server 2008 BULK INSERT 到日期时间列在秒部分的小数点后第三位引入错误:输入文件中的 2009-09-19 15:02:41.328 变为 2009-09-19 15:02:41.327数据库。

以下是输入文本文件包含的内容:

这是 BULK INSERT 后表格的样子:

这是代码:

0 投票
2 回答
795 浏览

sql - SQL保证开始/结束索引?

我(将)有数十万条记录,我插入一次,永远不会更新许多行包含相同的previousId。我可以保证一个开始/结束索引吗?我在 table_c 中使用事务插入 X 行,并将开始和结束(或开始和长度或结束和长度)写入 table_b,而不是让每一行都保存 table_b ID?

如果是这样,我该如何编写 SQL?我刚在想

这会按我的预期工作吗?