如何通过 OCI 设置 V$SESSION.PROGRAM?

How to set V$SESSION.PROGRAM via OCI?

使用 JDBC 瘦客户端,客户端可以配置 V$SESSION 视图的 PROGRAM 列中显示的内容(这是通过设置 CONNECTION_PROPERTY_THIN_VSESSION_PROGRAM 连接 属性).

使用 OCI 的 C 程序是否有类似的功能?

有一些方法可以使用 session handle 设置 CLIENT_INFOMODULEACTION 以及 V$SESSION_CONNECT_INFO.DRIVER_INFO,但我找不到 PROGRAM.

我没试过,但是 here's an archived blog post(带有示例 C 代码)关于这个主题。作者说您可以通过在程序的早期覆盖 argv[0] 来实现,OCI 会将该程序名称发送到服务器,例如

prglen = strlen(argv[0]);
strncpy(argv[0], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", prglen);