1. 概述
1.1 版本
FineBI 版本 | 功能变动 |
---|---|
5.1 | - |
5.1.15 | 内置驱动由 ojdbc14.jar 更换为 ojdbc8.jar |
1.2 应用场景
本文将介绍如何连接 Oracle 数据库。
2. 准备工作
2.1 版本和驱动
支持的数据库版本 | 驱动包下载 |
---|---|
Oracle 11.1 Oracle 11.2 / 11g-R2 Oracle 12.1 / 12c-R1 Oracle 12.2 / 12c-R2 Oracle 13 及以上 Oracle 19c | 已内置,无需下载 注:如果FineBI版本为5.1~5.1.15,需将内置驱动包ojdbc14.jar更换成ojdbc8.jar |
Oracle 9.2.0 / 9i Oracle 10.1 Oracle 10.2 / 10g-R2 | 上传驱动包的具体步骤可参见:驱动管理 2.1 节 |
2.2 收集连接信息
在连接数据库之前,请收集以下信息:
数据库所在服务器的 IP 地址和端口号;
数据库的名称;
数据库的用户名和密码;
要连接的数据库模式;
3. 具体连接步骤
1)以管理员身份登录 FineBI ,点击「管理系统>数据连接管理」,点击「新建数据连接」,如下图所示:
注:如果非管理员用户想要配置数据连接,需要管理员给其分配管理系统下数据连接节点的权限,具体操作请查看 数据连接权限
2)找到 Oracle 数据库,如下图所示:
3)输入 2.2 节的连接信息。若驱动是内置的,选择「默认」;若驱动是自己上传的,可以选择「自定义」,勾选自己要的驱动。
模式需要连接数据库后才可以选择,所以需要先点击「点击连接数据库」后,再选择「模式」,如下图所示:
注:连接多模式的数据库时使用 SQL 语句需要带上模式名前缀进行搜索,例如 SELECT * FROM "ABBY"."FR_S_UEP"
驱动、数据库名称、URL 的介绍如下表所示:
驱动 | DatabaseName | URL |
---|---|---|
oracle.jdbc.driver. OracleDriver | sid_name | jdbc:oracle:thin:@ip:port:sid_name |
service_name | jdbc:oracle:thin:@//ip:port/service_name 或者 jdbc:oracle:thin:@ip:port/service_name | |
TNSName 注:Oracle 安装路径下需要有 tnsnames.ora 文件 | jdbc:oracle:thin:@TNSName |
TNSName 说明如下:
jdbc:oracle:thin:@TNSName URL 中,TNSName 的值为tnsnames.ora文件中 ORCL 的值,如下图所示:
完整的 URL 为:jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST =localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))
4)点击「测试连接」,若连接成功则点击「保存」,如下图所示:
4. 添加数据库的表至 FineBI
5. 注意事项
在 Oracle 9i 版本中,精度为 0 的字段值会被识别成文本而不是数值「该字段值用 column.getSize() 计算得到的是 38 ,所以会被识别成文本属性」;其他版本的 Oracle 未有此现象出现。
BI 平台 Oracle 连接池在一段时间没有使用会自动释放,之所以查看连接池有之前的连接,是因为后面用户连接时又重新启用,所以不会因为连接一直得不到释放而造成问题。
若 Oracle 中的字段名包含特殊值(例如:date#$%?/2"),可能会导致自助数据集选字段的时候出现如下图报错。这时需要用户更换使用驱动 ojdbc14 来连接数据库,操作方式可参见本文 2.1 节。