使用python将数据插入MSSQL服务器
我正在尝试使用以下代码将数据插入sql server表中使用python将数据插入MSSQL服务器,python,sql-server,Python,Sql Server,我正在尝试使用以下代码将数据插入sql server表中 import pyodbc user='sa' password='PC#1234' database='climate' port='1433' TDS_Version='8.0' server='192.168.1.103' driver='FreeTDS' con_string='UID=%s;PWD=%s;DATABASE=%s;PORT=%s;TDS=%s;SERVER=%s;driver=%s' % (user,pas
import pyodbc
user='sa'
password='PC#1234'
database='climate'
port='1433'
TDS_Version='8.0'
server='192.168.1.103'
driver='FreeTDS'
con_string='UID=%s;PWD=%s;DATABASE=%s;PORT=%s;TDS=%s;SERVER=%s;driver=%s' % (user,password, database,port,TDS_Version,server,driver)
cnxn=pyodbc.connect(con_string)
cursor=cnxn.cursor()
cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)",('thavasi','mumbai'))
cnxn.commit()
它在执行时给了我以下错误
Traceback (most recent call last):
File "sql.py", line 26, in <module>
cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)",('thavasi','mumbai'))
pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 2 parameters were supplied', 'HY000')
回溯(最近一次呼叫最后一次):
文件“sql.py”,第26行,在
execute(“插入mytable(名称、地址)值(%s,%s)”,('thavasi','mumbai'))
pyodbc.ProgrammingError:(“SQL包含0个参数标记,但提供了2个参数”,“HY000”)
我已经检查了insert语句的语法是否正确。那么是什么导致了这个错误呢?
string
这里的格式设置是错误的。试试这个
cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)" %('thavasi','mumbai'))
查看如果您在字符串中使用占位符,则需要使用%运算符,而不是使用带的参数列表,。所以你的电话应该是这样的:
cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)" %('thavasi','mumbai'))
您忘记了值之前的
%
符号,%s
必须使用倒逗号
试试这个:
a1 = row[0]
a2 = row[1]
valores = (a1, a2)
cursor2.execute('INSERT INTO [CENTRAL_ALARM].[dbo].[EEE](E3TimeStamp, CaptacaoSemAgua) VALUES (?,?)', valores)
execute('INSERT-INTO-mytable(name,address)值(“%s”,“%s”),%('thavasi','mumbai'))
在pyodbc模块中使用?而不是%,尝试以下操作:
a1 = row[0]
a2 = row[1]
valores = (a1, a2)
cursor2.execute('INSERT INTO [CENTRAL_ALARM].[dbo].[EEE](E3TimeStamp, CaptacaoSemAgua) VALUES (?,?)', valores)
这对我有用
cursor.execute("INSERT INTO tablename(field1,field2) VALUES(?,?) ", (data1,data2))
这适用于SQL Server 2012及更高版本和集成安全性
import pyodbc
conn = pyodbc.connect('Driver={SQL Server Native Client 11.0};'
r'Server=YourServer\YourInstance;'
'Database=YourDatabase;'
'Trusted_Connection=yes;') #integrated security
cursor = conn.cursor()
SQLCommand = ("INSERT INTO PY.PackageTables (PackageName,PackageTables) VALUES (?,?);")
Values = ['Test1','Test3']
#Processing Query
cursor.execute(SQLCommand,Values)
conn.commit()
print("Data Successfully Inserted")
conn.close()