Access 2012 导入 500MB 的文本文件导致磁盘不足 space 错误
Access 2012 importing a 500MB text file results in an out of disk space error
我有一个 500MB 的 txt 文件。它不是 CSV 文件(除了 spaces 之外没有任何分隔符),所以我无法使用 tSQL 导入它。目前我正在尝试借助 Access 的导入规范。我弄清楚了如何在代码中调用它并完善了代码,以便我可以导入一个小文件(测试文件大 200kb)。但现在我有了我必须导入的确切文件,它的大小为 500MB。当我 运行 我的代码达到大约 50% 时,然后抛出一个 "Your computer is out of disk space. You won't be able to undo this paste append. Do you want to continue anyway?" 错误。
我正在插入链接 SQL table。
我能做些什么来消除这个错误,究竟是什么导致了它(我有足够的磁盘 space 和内存容量)?
您可以像这样在 T-SQL 中批量插入 space 个分隔文件:
BULK INSERT yourTable
FROM 'C:/<filepath>/yourTextFile.txt'
WITH
(
--Space delimited
FIELDTERMINATOR =' ',
--New rows starts at new line
ROWTERMINATOR ='\n'
--Use this if you have a header row with your column names.
--,FIRSTROW = 2
)
你确定你有磁盘 space space?它不只是构成这些消息。
磁盘space是否实际分配给数据数据和日志文件?
好吧,我设法使用 tsql 解决了它。问题是文件中的列没有用任何分隔符分隔。因此,我在访问中创建了一个导入规范(您可以在其中选择每一列所在的位置)。然后我只是使用该规范作为编写 tsql 过程的参考,该过程使用批量插入,然后使用 SUBSTRING(访问规范为您提供在子字符串中使用的范围)从 txt 文件中获取每个 "column"。
现在可以正常使用了。导入 500MB 的文件大约需要 20 分钟。但我晚上有一份工作来运行它,所以这不是问题。
谢谢大家的帮助。这个问题现在已经结束了。对我的解决方案有任何疑问,请提问。
我有一个 500MB 的 txt 文件。它不是 CSV 文件(除了 spaces 之外没有任何分隔符),所以我无法使用 tSQL 导入它。目前我正在尝试借助 Access 的导入规范。我弄清楚了如何在代码中调用它并完善了代码,以便我可以导入一个小文件(测试文件大 200kb)。但现在我有了我必须导入的确切文件,它的大小为 500MB。当我 运行 我的代码达到大约 50% 时,然后抛出一个 "Your computer is out of disk space. You won't be able to undo this paste append. Do you want to continue anyway?" 错误。
我正在插入链接 SQL table。
我能做些什么来消除这个错误,究竟是什么导致了它(我有足够的磁盘 space 和内存容量)?
您可以像这样在 T-SQL 中批量插入 space 个分隔文件:
BULK INSERT yourTable
FROM 'C:/<filepath>/yourTextFile.txt'
WITH
(
--Space delimited
FIELDTERMINATOR =' ',
--New rows starts at new line
ROWTERMINATOR ='\n'
--Use this if you have a header row with your column names.
--,FIRSTROW = 2
)
你确定你有磁盘 space space?它不只是构成这些消息。
磁盘space是否实际分配给数据数据和日志文件?
好吧,我设法使用 tsql 解决了它。问题是文件中的列没有用任何分隔符分隔。因此,我在访问中创建了一个导入规范(您可以在其中选择每一列所在的位置)。然后我只是使用该规范作为编写 tsql 过程的参考,该过程使用批量插入,然后使用 SUBSTRING(访问规范为您提供在子字符串中使用的范围)从 txt 文件中获取每个 "column"。
现在可以正常使用了。导入 500MB 的文件大约需要 20 分钟。但我晚上有一份工作来运行它,所以这不是问题。
谢谢大家的帮助。这个问题现在已经结束了。对我的解决方案有任何疑问,请提问。