【发布时间】:2017-03-01 16:33:23
【问题描述】:
我正在尝试使用 pyodbc 将本地文件批量插入远程 MS_SQL 数据库。我能够连接到数据库并且能够INSERT INTO 表,就像我之前所做的那样。我遇到问题的地方是BULK INSERT。
我使用BULK INSERT 来加快我的INSERT 进程。
代码如下所示:
statement = """ BULK INSERT BulkTable FROM 'C:\\Users\\userName\\Desktop\\Folder\\Book1.csv' WITH (
FIRSTROW=2,
FIELDTERMINATOR=',',
ROWTERMINATOR = '\\n'
);
"""
cursor.execute(statement)
cnxn.commit()
此代码产生此错误:
Traceback (most recent call last):
File "tester.py", line 41, in <module> cursor.execute(statement)
pyodbc.ProgrammingError:
('42000', '[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server] Cannot bulk load because the file "C:\\Users\\userName\\Desktop
\\Folder\\Book1.csv" could not be opened.
Operating system error code 3(The system cannot find the path specified.). (4861) (SQLExecDirectW)')`
我真的不明白为什么它无法打开文件,因为路径绝对正确。
如果您需要更多信息,请告诉我。
【问题讨论】:
-
三引号字符串中的
\\Desktop和\\Folder之间真的有换行符吗?这可能会搞砸事情。 -
我摆脱了它,但这并没有帮助。我得到同样的错误。
标签: python sql-server bulkinsert pyodbc