r2dbc:calling stored mysql中带有in和out参数的proc

zwghvu4y  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(318)

r2dbc当前是否支持使用in/out参数调用mysql中的存储过程?
我正在尝试使用返回字符串的databaseclient调用存储过程。但出现以下异常。是否必须添加任何内容才能从r2dbc调用sp。我的存储过程如下所示。如何使用databaseclient调用sp

CREATE PROCEDURE usp_get_data(in someId varchar(255),
in someName varchar(255),
out email varchar(255))
BEGIN
    SELECT email  FROM products where id=:someId and name=:someName LIMIT 1;
END //

下面是我的代码。

String STORED_PROC = "call usp_get_data(:someId,:someName)"

 def result = databaseClient.execute(STORED_PROC)
                .bindNull("someId","someId")
                .bindNull("someName", "someName")
                .as(String.class)
                .fetch().one()
Incorrect number of arguments for PROCEDURE usp_get_data expected 3, got 2))
yftpprvb

yftpprvb1#

忘记在call存储过程语句中添加@out。
在下面修改我的执行方式是有效的。

String STORED_PROC = "call usp_get_data(:someId,:someName,@email);
Select @email"

相关问题