# 存储过程及函数配置 > **sql数据集配置存储过程** [TOC] ## 在数据库中创建存储过程或函数 ``` CREATE PROCEDURE `jmdemo`(name varchar(32)) BEGIN -- 通过用户名查询列表 SELECT * FROM user WHERE username = name; END ``` ## 创建数据集 **1. 在设计界面,点击“数据集管理 ->SQL数据集”(操作如图7.11),进入SQL 数据集配置界面,如图1.1**; ![](https://img.kancloud.cn/fb/24/fb245c5289ff58509bd26bd15115d235_329x231.png) :-: 图1.1 **2. 选择好数据源:** >下方如果有表,会显示表名称 ![](https://img.kancloud.cn/1f/77/1f7788d14c7f8183f3a3fe2ef76be90f_1920x829.png) :-: 图1.2 ## 调用存储过程 **1. 在SQL 数据集配置界面,在报表SQL栏输入表达式 CALL name( ${parma},...) 如图1.3**; name:存储过程名称 parma:传入的参数1 ...:代表后面可以写多个参数,如`${name}`,中间用`,`隔开 示例: ~~~ CALL jmdemo('${name}') ~~~ ![](https://img.kancloud.cn/dd/6e/dd6eda0f731ab2c081a04b61881f34ba_1871x824.png) :-: 图1.1 **2. 点击‘SQL解析’,如果有传参,会提示解析失败或数据为空 如图2.1**; ![](https://img.kancloud.cn/b1/0f/b10f4eb7c09117080524e8b53289873f_1917x900.png) :-: 图2.1 **3. 输入参数默认值后,再次点击SQL解析,出现如下图效果,则解析正常如图3.1**; ![](https://img.kancloud.cn/09/9e/099e2a98cfa91ce9e815e3cb939326c4_1920x895.png) :-: 图3.1 >字段会自动解析出来 ![](https://img.kancloud.cn/ac/d4/acd4986432bc72fd45b99cdc999c8336_1882x826.png) # 附录 ## oracle存储过程的使用 ### 1、创建存储过程 >需要存在输出游标`sys_refcursor`,且写在括号里面最后一个,`xb`性别为参数,可以写多个,其中用逗号分开 ``` CREATE OR REPLACE procedure jmtest(xb in VARCHAR2 ,out_result_cursor out sys_refcursor) is begin open out_result_cursor for select ID,NAME,SEX from demo where SEX = xb; end; ``` >数据集页面写法参考如下: * CALL `存储过程名称`(${param1},${param...},?) * ${param}参数,多个用逗号拼接,字符串需要有`' ${param} '`单引号 * `?` 游标,需要在参数后面填写 ``` CALL jmtest('${sex}',?) ``` ![](https://img.kancloud.cn/5b/47/5b47c84a8d27772dc421d200b704a61d_1913x916.png) >点击sql解析 ![](https://img.kancloud.cn/5e/36/5e360d1b1362543833cac45eae49a45a_1877x466.png) >数据预览效果展示 ![](https://img.kancloud.cn/07/69/07697172c34251455e46aac7d3a036ab_1860x781.png)