我有一个问题,我非常感谢您的建议或任何与之相关的官方文档的链接。我的问题是:Nhibernate版本2.1.2支持哪些Oracle版本?
简而言之,我们有一个使用Nhibernate 2.1.2和Oracle 10g的系统。我们感兴趣的是迁移到Oracle 11x,甚至Oracle 12x(" x"适用于任何子版本)。问题是所有数据库事务都由Nhibernate处理,我们无法找到有关支持的第三方软件的任何官方信息。
这是一项严峻的挑战,因为此系统的当前错误日志存在错误,例如"更新RequestLog2时的异常::意外行数:0预期1"由Nhibernate.AdoNet.Expectations.BasicExpecation.VerifyOutcomeNonBatched抛出。经过一年的研究后得出的结论是,这无法修复,这会让管理团队感到不安。更重要的是,我们有一些死锁,大约每周一次,也是无法修复的。该列表仍在继续,但整个系统仍然有效。出于这个原因以及更多原因,管理团队对迁移到不受管理的Oracle版本感到有点紧张,然后发现自己遇到了更多这些错误的系统。
非常感谢您提供有关此问题的任何信息!
最诚挚的问候,
Tarh Ik
答案 0 :(得分:0)
在NHibernate's Github page上,您可以看到NHibernate支持的方言列表。以下是列出的oracle:
现在,这取决于支持的含义。
如果您的意思是支持完全支持更新的Oracle功能和内置函数,那么不,甚至NHibernate 4.0.x也没有附带特定于Oracle的方言11或12。
如果你的意思是工作正常,那么我认为使用Oracle 10g方言与Oracle 11或12可以正常工作 - 只是基于新数据库版本的假设引擎向后兼容为Oracle 10编写的代码。
所有这一切都说我对甲骨文一无所知,我无法确定升级是否会顺利进行。最好的办法就是尝试一下。
无论如何,如果没有为新版本的Oracle创建自己的方言(顺便说一下并不那么难),除了通过较旧版本的Oracle之外,没有内置的支持Oracle方言。