我对理论有疑问。 我的应用程序使用Odp.Net。我添加了Oracle.DataAccess.dll版本2.112.3.0作为参考文件。 我使用Odp.Net查询数据库和注册表查询通知。 在每台计算机上,我从http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html安装ODAC 11.2第5版(11.2.0.3.20)。
我想知道我的Odp.Net版本,Oracle客户端版本(可以安装在客户端计算机上)和Oracle Server版本之间存在哪些依赖关系。
问题是在我注册查询通知后,我可以看到USER_CHANGE_NOTIFICATION_REGS表中的行。但几秒钟后,此通知未注册且消失。我读到这与版本问题有关,但我不明白我必须做什么。
我的目标是在我的应用程序中使用相同的Odp.Net文件(Oracle.DataAccess.dll +一些额外的依赖项,如oci.dll等)。
答案 0 :(得分:2)
解密ODP版
a.b.c.d(例如2.112.3.0):
另一个例子:“4.100.1.0” - ODP for .Net 4.0+和Oracle Client 10.0+ 1st version
答案 1 :(得分:0)
11.2.0.1数据库中有关于更改通知的错误。
以下SQL导致Oracle避免旧版本的错误代码路径,但建议您升级数据库:
永远改变系统设置事件'10867跟踪名称上下文,级别1';
这并不意味着永久解决方案。您应该升级ODP.NET并将数据库修补到最新的11.2补丁集。
Christian Shay
的Oracle
答案 2 :(得分:0)
解决 Oracle服务器版本11.2.0.1.0和11.2.0.2.0有一个错误。如果客户端在其他版本注册事件中,它将在首次更改数据库后自动取消注册。要解决它,我必须持续命令: alter system set event ='10867永远跟踪名称上下文,级别1,COMMENT ='komentarz'SCOPE = SPFILE;