如何获取 DDL 命令的输出 Python cx_oracle

how to get the output of DDL commands Python cx_oracle

我目前正在与 cx_oracle

合作

在这里使用 SELECT 语句我可以使用 fetchall() 函数来获取行。

但是如何获取属于数据定义语言 (DDL) 类别的查询的输出。

例如,在使用 cursor.execute() 执行 GRANT 语句后,假设查询有效的预期输出将是,

“GRANT 执行成功”

但是我如何通过 cx_oracle、Python.

得到这个

答案是你自己打印了,这就是 SQL*Plus 所做的。

DDL 语句是语句而不是查询,因为它们没有 return 数据。它们 return 执行它们的工具的成功或错误条件,然后可以打印任何消息。在您的情况下,该工具是 cx_Oracle。 cx_Oracle 中无法自动获取语句的类型(GRANT、CREATE 等)。您的应用程序可以打印一条通用消息,例如 'statement executed successfully',或者您可以从 SQL 语句中提取第一个关键字,这样您就可以打印一条消息,例如 SQL*Plus。