我正在尝试导入.fmt格式定义的文本文件。这个文本文件不是以逗号分隔,而是我称之为列分隔(即前8个字符是第一个字段,接下来的3个字符是第二个字符,等等)。当我运行下面的查询时,我得到一个“操作系统错误代码(null)”消息,这是奇怪的,因为我使用SQL Server 2008r2与Vista。
请向我解释这个错误消息的含义以及如何解决这个问题?我已经搜索过它并在其他论坛上发现了类似的问题,但它们从未得到过真正的回答。
这是我的疑问:
BULK INSERT LoadTable FROM '\\Dev2\Queries\Test.txt'
WITH (FIRSTROW = 2,
FORMATFILE = '\\Dev2\fmt\Test.fmt',
KEEPNULLS)
这是我得到的错误:
Cannot bulk load because the file "\\Dev2\fmt\test.fmt" could not be read.
Operating system error code (null).
以下是Test.fmt包含的内容:
9.0
7
1 SQLCHAR 0 8 "" 1 Record_Control_Data SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 3 "" 2 Filler ""
3 SQLCHAR 0 1 "" 3 Member_Code SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 2 "" 4 Member_Sequence_Number SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 0 9 "" 5 Participant_SSN SQL_Latin1_General_CP1_CI_AS
6 SQLCHAR 0 20 "" 6 LastName SQL_Latin1_General_CP1_CI_AS
7 SQLCHAR 0 250 "\r\n" 7 Filler10 SQL_Latin1_General_CP1_CI_AS
(此test.fmt和test.txt是具有120列的数据集的简化版本。但错误消息是相同的。一旦我可以运行此测试版本,我将修复应用于实际数据)
为了回应网络上的其他半答案,我应该对这些文件夹有完整的读/写权限。文件。
答案 0 :(得分:48)
.fmt
文件最后需要一个空行。