cx_Oracle: ORA-00922: 更改会话命令的选项缺失或无效

cx_Oracle: ORA-00922: missing or invalid option for alter session command

我目前正尝试使用 cx_Oracle 从我的 python 程序中 运行 以下命令:

alter session set "_use_nosegment_indexes" = true;

我正在尝试为一个大学项目编写一个程序,该程序可用于索引调优,并且需要能够 运行 从程序(运行良好)中解释考虑到的计划虚拟索引。据我了解,需要设置以上内容才能发生这种情况,但我在 python:

中收到以下错误

cx_Oracle.DatabaseError: ORA-00922: missing or invalid option

这一切都是通过与 Oracle 运行正在连接的远程服务器的连接完成的。我是不是做错了什么,或者这是 cx_Oracle 不支持的东西,在这种情况下,我可以使用另一个包来做这件事。如果没有,是否有另一个我可以尝试的 DBMS,其中虚拟索引的解释计划可以是 python 程序中的 运行。

谢谢

终于找到单引号和双引号的正确组合了。最后,有效的代码是:

query = "alter session set \"_use_nosegment_indexes\" = true"
dbcursor.execute(query)

你也可以这样做(更清晰一点):

query = """alter session set "_use_nosegment_indexes" = true"""
dbcursor.execute(query)