首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Oracle9i迁移到Oracle11g时更新过程、包和函数

从Oracle9i迁移到Oracle11g时更新过程、包和函数
EN

Stack Overflow用户
提问于 2013-11-11 05:50:41
回答 1查看 107关注 0票数 1

我收到了一个大型的Oracle9i计划,我应该把它转换成Oracle11g。不幸的是,它在函数、过程和包中使用了许多逻辑上无效的sql语句“命令兄弟”,这不是Oracle9i拒绝的,而是在Oracle11g中导致解析器错误。

我想要实现的是,最简单的方法是在不手工修补包和过程的情况下替换无效语句,或者在生产服务器上的某个时候禁用此错误的解析器行为,然后手动修复所有此类错误。

它能以某种“自动”的方式完成吗?

提前感谢!

好的,这是查询本身的示例。请注意,查询没有语法错误。区别在于Oracle9i和Oracle11g以及更高的用户在检查ligocal相关性验证规则时的行为。

代码语言:javascript
复制
select version, ord, level as lvl from
(
 select a.key, a.parent_key, a.version, a.ord from b_rds_elem a where a.dict_key = 306350
)
connect by prior key = parent_key
start with parent_key is null
order siblings by level, ord

此查询将由Oracle9i和更少执行,并在大于9i时抛出错误ORA-00976。按级别排序是没有意义的,因为在分层查询中,默认情况下,所有节点都已按级别进行排序。因此,对于这样愚蠢的查询,9i更自由,但11g则不然。

EN

回答 1

Stack Overflow用户

发布于 2013-11-11 09:38:39

一般来说,你不按等级订货,那样会弄脏它。只是按属性排序-它命令大小保持水平。逐级排序对“兄弟姐妹”来说是没有意义的。在11G中,它被验证并得到一个错误,但是在9i中,这会被忽略并破坏兄弟姐妹的级别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19899713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档