1 概述
1.1 版本
| 服务器版本 |
|---|
| v8.0.0及以上版本 |
1.2 功能说明
普通查询存储过程用于从数据库执行预定义的存储过程,获取数据并展示。它支持配置输入参数(用于筛选数据)和输出参数(用于获取存储过程执行的状态/结果),适用于无需分页、仅需单次查询返回结果的场景。
2 返回的参数及接纳的变量
乐创者对普通查询方式的存储过程参数的规定:
1)MySQL或SQL Server或db2:
√ 返回一个数值参数(必须)
用系统变量“procOutResultType”进行接纳,所代表的含义是执行是否成功,0的含义是成功,1的含义是失败。
√ 返回一个字符串参数(可选)
用系统变量“procOutResultMsg”进行接纳,所代表的含义是“备注描述”。
√ 返回另一个字符串参数(可选)
用系统变量“procOutErrorCode”进行接纳,所代表的含义是“错误代码”。
2)Oracle:
除了MySQL所需要的上述3个返回参数外,还有一个参数:
√ 返回一个游标参数(必须)
用系统变量“procOutData”进行接纳,所代表的含义是记录集的游标。
3 存储过程 get_orderList
以存储过程 get_orderList 为例,如下:
CREATE PROCEDURE `get_orderList`(IN custId varchar(50),IN employId INT(10),OUT stateMark INT(10))
BEGIN
SELECT
a.订单ID,b.公司名称,CONCAT(C.姓氏, C.名字, c.尊称) 雇员,a.到货日期,a.发货日期, a.订购日期, a.运货费 + d.价格 AS 总价
FROM
订单 a
LEFT JOIN 雇员 c ON a.雇员ID = c.雇员ID
LEFT JOIN 客户 b ON a.客户ID = b.客户ID
LEFT JOIN (
SELECT
a.订单ID,a.单价 * a.数量 * (1 - a.折扣) as 价格
FROM
订单明细 a
GROUP BY
a.订单ID
) d ON a.订单ID = d.订单ID
WHERE IF (custID = ' ',1 = 1, a.客户ID = custId)
AND IF (employId = 0,1 = 1, a.雇员ID = employId);
SET stateMark=0; -- 这里表示存储过程执行正常
END定义了custId、employId两个输入参数和stateMark一个返回参数。
其中:
custId、employId:是两个业务输入参数,接收调用执行时传递的业务参数。
stateMark返回参数是告知乐创者系统存储过程执行成功与否。
4 定义数据模型
4.1 功能入口
进入数据模型管理界面,点击全局“+”或某目录的“+”选择新建模型“存储过程”,如下图:
4.2 存储过程配置

4.2.1 基础配置
1、数据连接:下拉选择目标数据库连接(如示例中的ddsl)。
2、存储过程:下拉选择需要调用的存储过程(如示例中的get_orderList),可搜索。
3、用途:选择【普通查询】(默认选中,无需分页 / 写入场景使用)。
4.2.2 参数配置
根据存储过程定义,配置输入 / 输出参数的值。
值类型,包括:常量、系统变量、查询参数。
常量:顾名思义,即固定值,“值”的内容将直接原样传递给“参数名”所对应的存储过程参数。
系统变量:也是变量,但是系统预先定义的,只要选择对应上即可; proceOutResultType:存储过程执行结果,0:成功,非0:失败。
查询参数:相对于常量来说,它是一个参数,且是自定义的,实现与后续步骤接收参数值,参数名即为“值”里大括号里的名称,注意:大括号里竖线(|)左边是参数名,右边是默认值,可点击“…”按钮进入配置。
4.2.3 数据转换(计算列)配置
如需对存储过程返回的数据进行扩展处理(如字段拼接、公式计算),可使用数据转换功能:
点击右上角【数据转换】按钮,弹出配置窗口;
点击【添加】,新增计算列:
- 计算列名称:自定义字段名(如订单状态名称);
- 值:支持常量和表达式(支持字段引用、函数、变量);
- 数据类型:选择计算结果的类型(如 String/Int);
配置完成后点击【确定】,数据转换规则将在查询运行时自动生效。
5 使用
这样就实现了一个存储过程数据模型的定义,后续应用到报表、表单、大屏模板跟普通SQL视图类似。
最后编辑:fancy 更新时间:2026-06-22 11:36
