使用 pymssql 将文本文件批量插入 SQL 服务器
Bulk Insert text file into SQL Server using pymssql
我正在尝试使用 pymssql 将文本文件导入 SQL Server 2014(我是 python 的初学者,但似乎这是最简单的方法如果你知道一点 SQL)。 SQL 服务器与我正在导入的文件位于同一台计算机上。
这是我当前的代码
SQLCon = pymssql.connect(host=ServerNm,database=DatabaseNm)
Cursor = SQLCon.cursor()
BulkInsert = '''
BULK INSERT OD_List
FROM {}
WITH (
FIRSTROW=2
, FIELDTERMINATOR=','
, ROWTERMINATOR='\n'
)
'''.format("'C:\Users\thomsog1\Desktop\TM Tool\Test\SQL\Inputs\OD_List.txt'")
Cursor.execute(BulkInsert)
SQLCon.commit()
我在 Internet 上找到了一些编码示例并全部尝试都无济于事...我一直以以下错误结束:
File "pymssql.pyx", line 467, in pymssql.Cursor.execute (pymssql.c:7561)
pymssql.OperationalError: (4861, 'Cannot bulk load because the file
"C:\Users\thomsog1\Desktop\TM Tool\Test\SQL\Inputs\OD_List.txt" could
not be opened. Operating system error code 123(The filename, directory name,
or volume label syntax is incorrect.).DB-Lib error message 20018, severity
16:\nGeneral SQL Server error: Check messages from the SQL Server\n')
任何帮助将不胜感激!
BULK INSERT语句的FROM子句中的文件路径需要用T-SQL的单引号括起来,但它还包含反斜杠所以我们需要使用Python raw字符串 (r"..."
),因此
.format(r"'C:\Users\thomsog1\Desktop\TM Tool\Test\SQL\Inputs\OD_List.txt'")
我正在尝试使用 pymssql 将文本文件导入 SQL Server 2014(我是 python 的初学者,但似乎这是最简单的方法如果你知道一点 SQL)。 SQL 服务器与我正在导入的文件位于同一台计算机上。
这是我当前的代码
SQLCon = pymssql.connect(host=ServerNm,database=DatabaseNm)
Cursor = SQLCon.cursor()
BulkInsert = '''
BULK INSERT OD_List
FROM {}
WITH (
FIRSTROW=2
, FIELDTERMINATOR=','
, ROWTERMINATOR='\n'
)
'''.format("'C:\Users\thomsog1\Desktop\TM Tool\Test\SQL\Inputs\OD_List.txt'")
Cursor.execute(BulkInsert)
SQLCon.commit()
我在 Internet 上找到了一些编码示例并全部尝试都无济于事...我一直以以下错误结束:
File "pymssql.pyx", line 467, in pymssql.Cursor.execute (pymssql.c:7561)
pymssql.OperationalError: (4861, 'Cannot bulk load because the file
"C:\Users\thomsog1\Desktop\TM Tool\Test\SQL\Inputs\OD_List.txt" could
not be opened. Operating system error code 123(The filename, directory name,
or volume label syntax is incorrect.).DB-Lib error message 20018, severity
16:\nGeneral SQL Server error: Check messages from the SQL Server\n')
任何帮助将不胜感激!
BULK INSERT语句的FROM子句中的文件路径需要用T-SQL的单引号括起来,但它还包含反斜杠所以我们需要使用Python raw字符串 (r"..."
),因此
.format(r"'C:\Users\thomsog1\Desktop\TM Tool\Test\SQL\Inputs\OD_List.txt'")