请帮助编码新手
我不断收到错误消息
在getSidsWithStatusX中
sip.execute(查询)DatabaseError:ORA-00900:无效的SQL语句
def getSidsWithStatusX(startDate, statusX, endDate=None):
query = cfg.GET_STARTDATE_QUERY.format(startDate=startDate)
if (endDate):
query += cfg.GET_ENDDATE_QUERY.format(endDate=endDate)
query += cfg.GET_STATUSID_QUERY.format(statusX=statusX)
logger.debug(query)
sip = rdb.getCursor('sip')
sip.execute(query)
data = sip.fetchall()
sip.rollback()
sids = []
我过去了:
GET_STARTDATE_QUERY = """
select sid
from contact_requests
where entry_date > '{startDate:'%d-%b-%Y'}'
"""
GET_ENDDATE_QUERY = """
and entry_date < '{endDate:'%d-%b-%Y'}'
"""
GET_STATUSID_QUERY = """
and request_status_id = '{statusX:s}'
"""
最佳答案
您不应该在格式字符串中用引号引起来。这些引号将被复制到结果中,因此您最终得到了两组引号,一组来自{
之前和}
之后的引号,另一组来自%d-%b-%Y
周围的引号。
GET_STARTDATE_QUERY = """
select sid
from contact_requests
where entry_date > '{startDate:%d-%b-%Y}'
"""