存储过程调用
当前数据API不支持直接创建存储过程,但是可以执行MySQL、Oracle、PostgreSQL这三种数据源的存储过程,以Oracle数据库为例说明。
数据源说明
假设数据库里面有一张表,表结构如下建表语句所示:
create table sp_test(id number,name varchar2(50),sal number);
往表中并插入数据,数据集如下表所示:
ID |
NAME |
SAL |
---|---|---|
1 |
ZHANG |
5000 |
2 |
LI |
6000 |
3 |
ZHAO |
7000 |
4 |
WANG |
8000 |
在Oracle数据库中调用存储过程,根据name查询sal的值。
create or replace procedure APICTEST.sb_test(nname in varchar, nsal out number) as begin select sal into nsal from sp_test where name = nname; end;
数据API中的执行语句说明
数据API调用存储过程时,参数可通过后端服务请求的Headers、Parameters或者Body传递,参数名的语法为:{参数名}.{数据类型}.{传输类型}。
- 数据类型包括String和int。
- 传输类型指入参或出参声明,入参使用in,出参使用out。
数据API中调用存储过程的执行语句示例:
call sb_test(${nname.String.in},${nsal.int.out})
该脚本示例中,nname为字符串类型的入参,参数名为nname.String.in ,value则是你要查询的参数值。nsal为数值类型的出参,参数名为nsal.int.out,由于格式限定,出参的value也需要填写,可填写符合数据类型的任意值,不影响输出结果。
- 数据API中对存储过程的调用,用String和int来区分字符串和数值,无需加单引号,这一点和SQL要求不一样。
- 在后端服务的Headers、Parameters或者Body中定义的参数名不能相同,否则将被覆盖。