我试图让Python通过清理csv文件来填充SQL表,然后在SQL中进行批量上传。当我尝试以以下方式执行插入时:
sqlCommand = "BULK INSERT ? FROM ? WITH ( BATCHSIZE = 1000, ROWTERMINATOR = '\\n', KEEPNULL )"
cursor.execute(sqlCommand,tableName,fileName)
我得到以下错误:“@P1”附近的语法不正确。(102)(SQLExecDirectW)
但是,如果我这样做:
^{pr2}$它工作得很好。在
有没有更好的方法让这个工作起来?在
在T-SQL中,表名(和列)名不允许使用
?
parameter占位符。在第二种选择是在对数据库服务器执行之前使用Python中的字符串格式来构建T-SQL语句。这也称为dynamic SQL,是使用
BULK INSERT
完成任务的唯一方法。在动态SQL(通常是未验证的输入)引入了SQL injection漏洞,因此如果这是面向用户的脚本,请确保您正在验证}变量。在
tableName
和{相关问题 更多 >
编程相关推荐