暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle11g升级到19c以后得故事

原创 不想用随机名字 2024-12-27
135

  最近在对一个系统进行数据迁移,源系统是oracle11g的,这个应用是10年前的系统,源系统厂商也没有运维,也没有源码,测试环境没找到11g安装包,就安装了一个oracle19c的包。于是就有了下面的故事。

1、客户端版本过低

ORA-28040: No matching authentication protocol
修改$ORACLE_HOME/network/admin/sqlnet.ora文件,增加以下内容

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

因为密码加密方式不一致,修改完sqlnet.ora文件以后记得使用sys修改用户密码,负责还会提示
ORA-01017: invalid username/password; logon denied这个错误

2、不严格的sql写法导致ORA-00979

ora-00979 not a group by expression
修改隐藏参数"_complex_view_merging"=false

alter system set "_complex_view_merging"=false scope=both

也可以增加hint,但是因为老代码没有源码只能修改,以下是hint的写法

/*+ NO_QUERY_TRANSFORMATION */

3、wm_concat函数不可用

1.随便找个11g数据库在ORACLE_HOME/rdbms/admin/中找到这三个脚本owmctab.plb、owmaggrs.plb、owmaggrb.plb; 2.将获得的三个文件放入到19c的ORACLE_HOME/rdbms/admin/下
3.执行函数创建
sqlplua / as sysdba 连接数据库
依次执行函数创建:
@owmctab.plb;
@owmaggrs.plb;
@owmaggrb.plb;

  总结:老应用要小心点用。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

目录
  • 1、客户端版本过低
  • 2、不严格的sql写法导致ORA-00979
  • 3、wm_concat函数不可用