gpt4 book ai didi

python - 使用 pyodbc : cannot find file 批量插入 SQL Server 表

转载 作者:行者123 更新时间:2023-11-30 22:20:46 24 4
gpt4 key购买 nike

我知道以前曾有人问过此类问题,但仍然找不到我正在寻找的答案。我正在将 csv 文件批量插入到 SQL Server 表中,但收到如下错误:

我的代码:

df_output.to_csv('new_file_name.csv', sep=',', encoding='utf-8')
conn = pyodbc.connect(r'DRIVER={SQL Server}; PORT=1433; SERVER=Dev02; DATABASE=db;UID='';PWD='';')
curr = conn.cursor()
print("Inserting!")
curr.execute("""BULK INSERT STG_CONTACTABILITY_SCORE
FROM 'C:\\Users\\kdalal\\callerx_project\\caller_x\\new_file_name.csv'
WITH
(
CODEPAGE = 'ACP',
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);""")
conn.commit()

错误:

pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot bulk load because the file "C:\Users\kdalal\callerx_project\caller_x\new_file_name.csv" could not be opened. Operating system error code 3(The system cannot find the path specified.). (4861) (SQLExecDirectW)')

“new_file_name.csv”位于指定路径中。我尝试将路径更改为“new_file_name.csv”,因为它位于我运行脚本的文件夹中,但它仍然抛出

file does not exists

你能告诉我我在这里做错了什么吗?预先非常感谢。

最佳答案

BULK INSERT 语句在 SQL Server 计算机上执行,因此文件路径必须可从该计算机访问。您收到“系统找不到指定的路径”,因为路径

C:\\Users\\kdalal\\callerx_project\\caller_x\\new_file_name.csv

您的计算机上的路径,而不是 SQL Server 计算机上的路径。

由于您要将数据帧的内容转储到 CSV 文件,因此您可以简单地使用 df.to_sql 将内容直接推送到 SQL Server,而无需中间 CSV 文件。为了提高性能,您可以告诉 SQLAlchemy 使用 pyodbc 的 fast_executemany 选项,如相关问题中所述

Speeding up pandas.DataFrame.to_sql with fast_executemany of pyODBC

关于python - 使用 pyodbc : cannot find file 批量插入 SQL Server 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48774516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com