首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DatabaseError: ORA-00900:无效SQL语句

DatabaseError: ORA-00900:无效SQL语句
EN

Stack Overflow用户
提问于 2019-05-31 15:51:26
回答 1查看 1.7K关注 0票数 1

请帮助编写新代码。

我一直在犯错误

在getSidsWithStatusX sip.execute(查询) DatabaseError: ORA-00900:无效SQL语句中

代码语言:javascript
复制
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 = []

我路过:

代码语言:javascript
复制
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}'
                       """
EN

回答 1

Stack Overflow用户

发布于 2019-05-31 16:09:18

您不应该在格式字符串中围绕格式规范引用。这些引号将被复制到结果中,因此您将得到两组引号,一组来自{之前的引号,一组来自}之后的引号,另一组来自%d-%b-%Y周围的引号。

代码语言:javascript
复制
GET_STARTDATE_QUERY = """
                        select sid
                        from contact_requests
                        where entry_date > '{startDate:%d-%b-%Y}'
                    """
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56398228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档