Oracle 数据连接常见错误解决方案

  • Last update:January 27, 2021
  • 1. 概述

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

    2. 示例

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

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

    2.1 报错相关

    • 在 2019-01-15 之前的版本中,若为 Spider 引擎开启实时数据,直连 Oracle 数据库的话,超过 22 位的字段需要使用 SQL 语句转义添加到 FineBI 中。原因是 FineBI 直连会在字段前加 8 位字符,而 Oracle 超过 30 位标识符在将表添加到 FineBI 中时就会报错ORA-000972

      注:在 2019-01-15 之后的 FineBI5.1 版本已经修复该问题,可开启实时数据,直接添加最多 30 位的字段/表名至 FineBI 中。

      SQL 转义语句可使用:select “超过22位字段名的字段” as 转义名 from 表,如下图所示:

      image.png

    • 所有以 ORA 开头的报错都是 Oracle 数据库报错,可以通过在网络上对报错信息进行搜索,排查报错。如下图所示:

      image.png

    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-session决定连接池的大小,而应用同样也有一个参数,这个参数表示它连接数据库连接池所占用的最少资源。

    例如:总共有 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下,并重启工程。

    附件列表


    主题: 数据准备
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    9s后關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy