历史版本40 :添加SQL数据集 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI 版本
功能变动
6.0-
6.0.16参数新增支持【年月日-时分秒】格式

1.2 应用场景

用户可以通过简单的 SQL 语句对数据库中的表处理后再添加到「公共数据」中。

1.3 功能简介

FineBI 中的 SQL 语句不能创建新的数据表,也不能修改表结构,仅支持将已有数据库中的表通过 SQL 语句取数至 BI 。

SQL 语句的语法规则需要和连接的数据库适配。

2. 操作步骤编辑

进入「公共数据」,选择一个有管理权限的文件夹(可参见:公共数据管理权限)。点击「新建数据集>数据库表」,如下图所示:

2022-06-24_15-55-00.png 

2.1 创建无参数的 SQL 数据集

选择需要使用的数据连接后,就可以输入 SQL 语句取数。点击「预览」查看是否取数正确,最后点击「确定」添加表。如下图所示:

SQL 示例语句:select * from new_salesdetail

注:添加 SQL 数据集时,输入的 SQL 语句中不能带分号,否则若在字段设置处修改了字段类型,会导致数据集更新失败。

42.png

2.2 创建有参数的 SQL 数据集

1)输入一句有参数的 SQL 语句(参数的命名规则可参见:参数命名规则

2)点击「刷新」

3)对 SQL 中出现的参数设置参数类型和默认值

4)点击「预览」,查看取数结果,即筛选出所有时间大于 2016-12-12 14:15:25 的数据。

注:参数默认值可以设置为空,配合 if 函数或<parameter>实现参数为空时选择所有值的效果,详情可参见 参数为空选择所有值(直连) 。SQL 数据集支持添加参数后传递使用,详情使用介绍请参见 URL参数的传递使用(直连) 。

19.jpg

在设置时间参数的默认值时,我们可以设置动态时间,比如说昨天、上个月等。

2.3 更新 SQL 数据集

直连属性的 SQL 数据集添加后可直接使用,抽取属性的则需要更新后使用。如下图所示:

47.png

2.5 修改 SQL 

SQL 数据集在添加完成后,用户可从下图两个入口修改 SQL 语句以及参数设置。

48.png

3. 支持调用存储过程的数据库编辑

注1:存储过程仅对抽取数据有效,不支持直连数据库使用存储过程。

注2:FineBI不支持 Oracle 调用存储过程。

3.1 存储过程简介

「存储过程」就是存储在数据库中的一组 SQL 语句集。FineBI 在添加 SQL 数据集时,支持调用数据库中的存储过程,从而获得执行了存储过程 SQL 语句集后的表。

什么样的数据库能调用存储过程:可以使用 JDBC 方式连接,并可以通过 JDBC 执行 SQL 语句调用存储过程的数据库。

用户可以使用自检工具,按照 数据库连接失败排查步骤 2.3 节执行,在要查询的 SQL 语句后输入调用存储过程的语句,如果执行成功,即表明可以在 FineBI 调用存储过程。

3.2 调用示例

每种数据库的调用语句不同,针对不同类型的数据库使用对应的存储过程调用语句即可

3.2.1 MySQL 数据库调用存储过程

在 SQL 语句框中输入call + 存储过程名(),点击「预览」查看调用结果,点击「确定」即可保存该数据集。

若存储过程中有参数,调用方式如下:

  • 使用参数默认值:直接输入 call+存储过程名() 调用,例如 call test1()

  • 不使用默认值,传入参数值:call+存储过程名('参数值1','参数值2') ,例如 call test('a','100')


3.2.2 SQL Server 数据库调用存储过程

在 SQL 语句框中输入execute+存储过程名,点击「预览」查看调用结果,点击「确定」即可保存该数据集。如下图所示:

若存储过程中有参数,调用方式如下:

  • 使用参数默认值:直接输入 execute+存储过程名  调用,例如 execute StuCouIN 

  • 不使用默认值,传入参数值:execute+存储过程名 '参数值1','参数值2' ,例如 execute StuCouIN '7001','2'

19.png

4. 注意事项编辑

4.1 新增字段后数据预览界面不显示

若修改 SQL 数据集的 SQL 语句,增加「合同付款类型」字段,点击「确定」,如下图所示:

修改 SQL 数据集后,数据表不会直接将添加的字段更新进来,需要点击基础表的「编辑」按钮。手动勾选新增的字段,如下图所示:

4.2 添加数据库视图

有时用户需要在 BI 中添加数据库视图,可以通过添加 SQL 数据集的方式实现。

例如 MySQL 数据库中存在视图,可创建 SQL 数据集取数到 BI ,如下图所示:

也可进入「管理系统>数据连接>数据连接管理」,重新连接数据库并保存,即可通过 添加数据库表 添加视图。

4.3 6240001 duplicate field names found

问题描述:SQL数据集预览失败,错误代码:6240001 duplicate field names found :XXXXX

原因分析:列名重复

解决方案:请检查并修改SQL,确保不存在重复列名称