cx_Oracle 中的应用程序名称

Application name in cx_Oracle

我正在使用来自 cx_Oracle 的 SessionPool 连接到 Oracle 数据库服务器。当我查看 Oracle 开发人员中打开的会话的描述时,我看到它的名称是“python.exe”。如何在 cx_oracle 中设置 application/module 名称?

您可以物理重命名 python.exe,但没有编程方式来更改 Oracle 数据库中显示为可执行文件的内容。

您可以通过调用cx_Oracle.init_oracle_client来设置驱动名称。这会更改 V$SESSION_CONNECT_INFO.

的 CLIENT_DRIVER 列

文档中显示了其他可设置的属性,包括 'module'(在 Oracle 术语中不是程序名称)Oracle Database End-to-End Tracing

# Set the tracing metadata
connection.client_identifier = "pythonuser"
connection.action = "Query Session tracing parameters"
connection.module = "End-to-end Demo"

for row in cursor.execute("""
        SELECT username, client_identifier, module, action
        FROM V$SESSION
        WHERE username = 'SYSTEM'"""):
    print(row)