1 概述
【存储过程】就是存储在数据库中的一组 SQL 语句集。Smartbi 的数据模型支持调用数据库中的存储过程,从而获得执行了存储过程 SQL 语句集后的表。
2 示例
比如用户想创建一个名为“FindCustomer”存储过程,可以用它来找出数据库Customer表中的ContactName;
- 找出CustomerID为指定值(输入参数)的记录的ContactName字段的名称
以产品自带northwind数据库创建存储过程FindCustomer
具体操作如下:
1)先在数据库中创建存储过程FindCustomer,如下图:
2)再到Smartbi系统中的数据连接中对所需数据库进行数据库管理,选择所需的存储过程资源:
3)对所选存储过程进行管理,“存储过程管理”窗口中通过 自动检测 和 检测结果集 按钮分别检测出相关的参数和获取存储过程的结果集,详细可参考:存储过程数据集
- 点击【确定】在资源树上会看到该存储过程已经有结果集了:
4)创建数据模型,并添加“存储过程查询”:
- 必须确保在“存储过程管理”窗口中通过 自动检测 和 检测结果集 按钮分别检测出相关的参数和结果集,资源区才会出现可选资源。
- 点击【预览】图标,可预览根据默认值查询的数据
- 点击【保存】并回到模型修改数据类型、修改别名、设置与其他查询的关系或者参考构建数据模型。
- 如果在模型中的[参数管理]进行了关联映射,可以随着模型设置的默认值改变输出结果集;具体可参考:参数管理
- 最终预览效果:
存储过程只支持抽取模式!
1.如果模型原先是直连模式,增加了存储过程查询,会强制变成抽取模式
2.如果存储过程查询有参数,需要在报表层切换参数展示数据,建议“按次抽取”