cx_Oracle ORA-00933 SQL 命令未正确结束

cx_Oracle ORA-00933 SQL command not properly ended

我正在尝试 运行 一个带有 cx_Oracle 的语句,但我一直遇到这样的问题,它说 SQL 命令没有正确结束,但是在阅读文档之后似乎是这样是正确的,但实际上是不正确的。 cx_Oracle.DatabaseError: ORA-00933 SQL command not properly ended

vary = "'Y'"
dsn_tns = cx_Oracle.makedsn(hostName, port,
                            service_name=serviceName) 
conn = cx_Oracle.connect(user=usr, password=__pswrd,
                         dsn=dsn_tns) 

c = conn.cursor()  

tempCheck = "'%{0}/%'".format(checkerAR)
statmentApp = 'SELECT TITLE,APP_URL from SOME.DATABASE' \
              'WHERE UPPER(APP_URL) LIKE UPPER(:tc)' \
              'AND ACTIVE_FLAG = :y'
c.execute(statmentApp,tc = tempCheck , y = vary)

c.execute 行是错误被标记的地方。我试图在 tempCheck 语句中输入,因为我想将通配符添加到 SQL 语句中。 我在这里做错了什么?

print (statmentApp)

给出:

SELECT TITLE,APP_URL from SOME.DATABASEWHERE UPPER(APP_URL) LIKE UPPER(:tc)AND ACTIVE_FLAG = :y

表明字符串连接效果很好。要保留必要的空格,您会发现使用三重引号更容易:

statmentApp = """SELECT TITLE,APP_URL from SOME.DATABASE
                 WHERE UPPER(APP_URL) LIKE UPPER(:tc)
                 AND ACTIVE_FLAG = :y"""