添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

本文介绍 Oracle 数据连接 中一些报错及解决方案。

2. 示例

  • 在 Oracle 9i 版本中,精度为 0 的字段值会被识别成文本而不是数值「该字段值用 column.getSize() 计算得到的是 38 ,所以会被识别成文本属性」;其他版本的 Oracle 未有此现象出现。

  • BI 平台 Oracle 连接池在一段时间没有使用会自动释放,之所以查看连接池有之前的连接,是因为后面用户连接时又重新启用,所以不会因为连接一直得不到释放而造成问题。

2.1 报错相关

2.2 ONS configuration failed

问题描述:

Oracle19c 数据连接报错: create connection error java.lang.IllegalArgumentException: ONS configuration failed

如下图所示:

image.png

解决方案:

Linux/Unix 修改 startWebLogic.sh 文件,搜索「setDomainENV.sh」,然后在「.${DOMAIN_HOME}」这句的上一行插入「JAVA_OPTIONS="-Doracle.jdbc.fanEnabled = false"」,如下图所示:

1600675821247567.png

2.3 表名/表头乱码

问题描述:

Oracle 数据连接, 添加 DB 表 ,表名/表头乱码。

解决方案:

将 Oracle 数据库的编码改成 SIMPLIFIED CHINESE_CHINA.ZHS16GBK

2.4 Oracle 11 无法读取 DB 表

问题描述:

Oracle11无法取 DB 表,日志报错如下图所示:

3.png

解决方案:

点击下载: orai18n.jar ,把orai18n.jar放到工程的 webapps\webroot\WEB-INF\lib 下,并重启工程。

2.5 Got minus one from a read call

问题描述:

数据连接失败,报错: Got minus one from a read call

1603179045829725.png

原因分析:

当连接数据库时,是通过连接池的机制进行连接的,数据库参数: max-sessio n决定连接池的大小,而应用同样也有一个参数,这个参数表示它连接数据库连接池所占用的最少资源。

例如:总共有 10 个应用需要连接数据库,如果每个应用连接数据库的最小连接数为 10 ,那么10个应用总共会有 100 个连接,这样就要求数据库连接池的 max-session 必须大于100,否则就会报 Got minus one from a read call 的错误。

解决方案:

1)查看 processes 和 sessions 参数

SQL 语句分别为:

show parameter processes
show parameter sessions

2)修改 processes 和 sessions 值

SQL 语句分别为:

alter system set processes=300 scope=spfile;
alter system set sessions=335 scope=spfile;

3)重启 Oracle

SQL 语句为:

shutdown immediate;

startup;

2.6 数据连接成功后无法选择模式

问题描述:

Oracle 版本 9.2.0.4 ,使用 2020-01-15 的 JAR ,连接成功后无法选择模式,也不显示数值。

原因分析:

驱动版本不适配。

解决方案:

根据实际情况换成支持的驱动,驱动下载链接: 驱动下载官方链接

示例:换成 ojdbc6 驱动才可以正常显示数据和选择模式。

2.7 No matching authentication protocol

问题描述:

Oracel 连接报错: ORA-28040: No matching authentication protocol;

原因分析:

驱动版本不适配。

解决方案:

点击下载: ojdbc7.jar ,把 ojdbc7.jar 放到工程的 webapps\webroot\WEB-INF\lib 下,并重启工程。