1.连接Oracle12C数据库报错,监听程序无法识别请求服务

oracle12c使用过程遇到问题

原因:数据库连接的数据库名字错误

要区分服务器连接名跟SID是否一样


2.连接Oracle12C报错,没有匹配的验证协议

oracle12c使用过程遇到问题

原因:Oracle12C版本为12.2.0.1.0,要求jdk1.8+ojdbc8.jar

网上有两种方式,方式一修改为ojdbc6.jar。方式二,修改配置文件。

因为数据库版本原因,方式一没有生效,方式二可以。

解决办法:

  1. 使用 jdk1.8+ojdbc8.jar
  2. 修改Oracle配置文件,允许低版本访问

在Oracle的安装路径下找到sqlnet.ora文件。

(我的安装路径F:\app\root\root\product\12.1.0\dbhome_1\NETWORK\ADMIN)
 在文件的最后添加SQLNET.ALLOWED_LOGON_VERSION=8

如果文件不存在,在该路径下新建文件sqlnet.ora,加上这句话。

如图:

oracle12c使用过程遇到问题

 


3.Oracle10往Oracle12C导数据,报错字段长度太长

原因:数据库字符集不同导致,Oracle12c一个字占3个字符,

解决办法:将varchar类型的数据字段长度扩充1.5倍,但是不能超过4000修

将varchar类型的数据字段长度扩充1.5倍

select 'alter table '||table_name||' modify'||'('||column_name||

' '||data_type||'('||ceil(data_length*1.5)||'));'

from user_tab_columns where data_type like '%VARCHAR2%'  AND COLUMN_NAME !='SHEETID'

and ceil(data_length*1.5)<=4000 and table_name not in(SELECT view_name FROM user_views)

 

执行查询出来的数据,进行扩容

扩容结束后,导出数据库

可能还是会存在问题,但是大部分问题解决,其他的可以根据日志报错去单独添补缺

相关文章: