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

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

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

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

下面是我的代码。

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

yftpprvb1#

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

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

相关问题