Python错误:cx_Oracle.DatabaseError:ORA-00972:标识符太长

Python错误:cx_Oracle.DatabaseError:ORA-00972:标识符太长,python,python-3.x,oracle-sqldeveloper,cx-oracle,Python,Python 3.x,Oracle Sqldeveloper,Cx Oracle,我正在尝试使用cx_Oracle在Python上运行SQL查询,并不断收到一条错误消息,完整的错误如下所示: 回溯最近一次呼叫上次: 文件Z:\fex\petrolpanel\PPL.PY,第45行,在 curs.executesql cx_Oracle.DatabaseError:ORA-00972:标识符太长 起初我认为这是因为我正在将一些变量解析到查询中,但我删除了这些变量,然后我认为这是因为原始数据上有一些内置的计算,所以我也删除了这些变量。它仍然不起作用 以下是脚本的相关部分: sql

我正在尝试使用cx_Oracle在Python上运行SQL查询,并不断收到一条错误消息,完整的错误如下所示:

回溯最近一次呼叫上次:

文件Z:\fex\petrolpanel\PPL.PY,第45行,在

curs.executesql

cx_Oracle.DatabaseError:ORA-00972:标识符太长

起初我认为这是因为我正在将一些变量解析到查询中,但我删除了这些变量,然后我认为这是因为原始数据上有一些内置的计算,所以我也删除了这些变量。它仍然不起作用

以下是脚本的相关部分:

sql = """"
SELECT PERIOD_YEAR, PERIOD_WEEK, PURCHASE_NUMBER, 
VALIDATION_FIELD, ORIGINAL_VAL_FIELD, SHOP_CODE, 
QUANTITY, TOTAL_PRICE
FROM OPS$OM1.ET0800
WHERE DELETE_FLAG = 'N' AND LATE_FLAG = 'E' AND ERROR_FLAG <> 'F' 
AND VALIDATION_FIELD < 100 AND PERIOD_YEAR = 2016 AND PERIOD_WEEK BETWEEN 41 AND 44
"""

# Execute SQL
curs.execute(sql)

rows = curs.fetchall()
在这之前的每件事都很好,在这之后没有任何事情发生。有什么想法吗?当我在Google上查看错误本身时,我得到:

您试图引用的表、集群、视图、索引、同义词、表空间或用户名的值超过30个字符

但是这个查询没有超过30个字符,我认为最长的字段是18个字符,表名本身只有6个字符长。我也可以在Oracle Developer上运行此查询,而不会出现任何问题


请帮帮我。

这件事最近发生在我身上。不是用三个引号打开字符串,而是用四个引号。结果:Oracle尝试将整个请求解释为标识符


致以最诚挚的问候

sql=您有4组双引号,而不是3组。谢谢您,这解决了我的问题,您是一个明星!