Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—如何使用';在价值上_Python_Mysql_Sql_Sql Server - Fatal编程技术网

Python—如何使用';在价值上

Python—如何使用';在价值上,python,mysql,sql,sql-server,Python,Mysql,Sql,Sql Server,我正在将数据从MySQL移动到MSSQL,但当我有“in”值时,insert into语句有问题 对于导出,我使用了以下代码: import pymssql import mysql.connector conn = pymssql.connect(host='XXX', user='XXX', password='XXX', database='XXX') sqlcursor = conn.cursor() cnx = mysql.connector.connect(user='roo

我正在将数据从MySQL移动到MSSQL,但当我有“in”值时,insert into语句有问题

对于导出,我使用了以下代码:

import pymssql
import mysql.connector

conn = pymssql.connect(host='XXX', user='XXX', 
password='XXX', database='XXX')
sqlcursor = conn.cursor()


cnx = mysql.connector.connect(user='root',password='XXX', 
database='XXX')
cursor = cnx.cursor()
sql= "SELECT Max(ID) FROM XXX;"
cursor.execute(sql)
row=cursor.fetchall()

maxID = str(row)
maxID = maxID.replace("[(", "")
maxID = maxID.replace(",)]", "")

AMAX = int(maxID)

LC = 1
while LC <= AMAX:
  LCC = str(LC)
  sql= "SELECT * FROM XX where ID ='"+ LCC +"'"
  cursor.execute(sql)
  result = cursor.fetchall()

  data = str(result)
  data = data.replace("[(","")
  data = data.replace(")]","")
  data = data.replace("None","NULL")
  #print(row)
  si = "insert into [XXX].[dbo].[XXX] select " + data 
  #print(si)
  #sys.exit("stop") 
  try:    
      sqlcursor.execute(si)
      conn.commit()
  except Exception:   
      print("-----------------------")
      print(si)
  LC = LC + 1
print('Import done | total count:', LC)
我希望避免将数据分为列,然后检查数据中是否有',因为我的表有大约500个字段

是否有一种聪明的方法将“替换为”呢

答复:


在insert语句中添加了SET QUOTED_标识符OFF:

si = "SET QUOTED_IDENTIFIER OFF insert into [TechAdv].[dbo].[aem_data_copy] 
select " + data 

在MSSQL中,您可以
将QUOTED_标识符设置为OFF
,然后您可以使用双引号来转义单引号,或者使用两个单引号来转义一个引号。

我认为当我将行复制到SQL时,它起作用了,但是python仍然抛出一个异常?两个单引号转义一个引号是ANSI SQL的方式。在我的insert语句中添加了SETQUOTED_标识符,它工作正常!感谢您正在使用此技术向SQL注入攻击敞开大门。
si = "SET QUOTED_IDENTIFIER OFF insert into [TechAdv].[dbo].[aem_data_copy] 
select " + data