问题: python中在连接使用sql查询的时候,通配符%不能正常被识别
例如: 查询 select * from Table where name like '%test'"
运行之后会提示缺少参数,因为%的原因
解决办法: 使用两个%可以对%进行转义: %%, 转义之后只有一个%,可以正常使用
import pymssql
class SqlClient:
def __getConnect(self):
try:
self.conn = pymssql.connect(host=self.host, appname = self.appname , user=self.user, password=self.pwd,
database=self.db, charset="utf8", port= self.port)
cur = self.conn.cursor()
except pymssql.OperationalError:
pass
except Exception as e:
_logger.error('error:' % e)
else:
return cur
def query(self, sql):
cur = self.__getConnect()
try:
cur.execute(sql)
resList = cur.fetchall()
self.conn.close()
return resList
except AttributeError:
_logger.error( 'connect sqlserver failed! SQL:{sql}'.format(sql=sql))
except pymssql.ProgrammingError:
_logger.error( 'db error! SQL:{sql}'.format(sql=sql))
_sqlClient = SqlClient()
if __name__ == "__main__":
_sqlClient.query("select * from Table where name like '%%test'")