gpt4 book ai didi

python - cx_Oracle 连续查询通知

转载 作者:行者123 更新时间:2023-12-04 18:34:08 25 4
gpt4 key购买 nike

我正在使用 Amazon Work Space,并且我使用 VPN 通过 SSH Ubuntu 16.04 实例进行连接。我使用 python 来连接 Oracle 数据库 11g,我需要使用 cx_Oracle 连续查询通知,我创建了这段代码,从这个页面 http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/oow10/python_db/python_db.htm 在互联网上查找:

import cx_Oracle 


def DCNCallback(message):
print "Notification:"
for tab in message.tables:
print "Table:", tab.name
for row in tab.rows:
if row.operation & cx_Oracle.OPCODE_INSERT:
print "INSERT of rowid:", row.rowid
if row.operation & cx_Oracle.OPCODE_DELETE:
print "DELETE of rowid:", row.rowid
if row.operation & cx_Oracle.OPCODE_UPDATE:
print "UPDATE of rowid:", row.rowid

con = cx_Oracle.Connection("pythonhol/welcome@localhost/orcl",
events = True)
subscriptionInsDel = con.subscribe(callback = DCNCallback,
operations = cx_Oracle.OPCODE_INSERT | cx_Oracle.OPCODE_DELETE
| cx_Oracle.OPCODE_UPDATE,
rowids = True)
subscriptionInsDel.registerquery('select * from mytab')
raw_input("Hit Enter to conclude this demo\n")

我复制了这个示例并尝试在我的 Ubuntu 实例上运行,它没有任何错误,但是当我在 oracle 数据库上插入/更新/删除某些行时,Ubuntu 终端上没有任何 react 。

我能做些什么 ?

最佳答案

oracle服务器是否开启了CQN?

您的非 sys 用户需要启用 cqn 通知,例如:

GRANT EXECUTE ON DBMS_CQ_NOTIFICATION TO user_name;
GRANT CHANGE NOTIFICATION TO user_name;

如果已经完成,当您运行 python 脚本时,在 mytab 表中执行插入/更新/删除,您是否看到 python 脚本的任何输出?请参阅此处了解更多详细信息:
https://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_cqn.htm#CHEIFAEJ

关于python - cx_Oracle 连续查询通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com