运行下面的代码时,管理工作室会显示设置它的错误。批量插入不插入数据
我需要通过BULK INSERT插入简单的文本数据到表中。用于插入的代码如下:
BULK INSERT Pais FROM 'C:\[bulkdata]\shared\01-Pais.txt'
WITH(MAXERRORS = 0, CODEPAGE = 'ACP', FIELDTERMINATOR = 'ø', ROWTERMINATOR = '\n', KEEPNULLS,
ERRORFILE = 'C:\[bulkdata]\shared\teste.txt')
文件我使用中测试该命令仅具有一个用于插入数据线, teste.txt:
BrasilØ01058
返回的错误如下:
Msg 4832, Level 16, State 1, Line 1
Bulk load: An unexpected end of file was encountered in the data file.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
teste.txt:
BrasilØ01058BrasilØ01058
在我看来,这是试图在同一行插入两次值,但正如设置显示,它通常插入到其他项目。我的用户可以未经许可吗?我已经创建了具有所有权限的特定用户,并且还设置了服务器执行批量操作的权限。
teste.txt.Error.Txt:
Row 1 File Offset 0 ErrorFile Offset 0 - HRESULT 0x80004005
我要做的第一件事就是检查文件的格式是否像记事本++中显示隐藏字符一样的真实文件..听起来像它它寻找换行或回车或无论是在最后还是没有得到。 – HLGEM
我只是做了一个简单的测试,似乎你正在使用javascript ....'var t1 ='ø'; var t2 ='Ø'; console.log(t1 === t2);'和结果是'false' – Hackerman
我的意思是你的文件中的字段终止符和你的批量声明中指定的字段终止符不一样 – Hackerman