最近在对一个系统进行数据迁移,源系统是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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
目录