提问人:Sonicx 提问时间:11/24/2022 最后编辑:Sonicx 更新时间:11/26/2022 访问量:176
在存储过程中未接收输入值
Not receiving input value in stored procedure
问:
我在存储过程中传递参数,但在使用输入进行过滤时无法获取记录。但是当我将输入存储到变量中并将其传递给获取记录时,我得到了记录。 下面是存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS Demo_akg$$
CREATE PROCEDURE Demo_akg (IN ip_Id VARCHAR (100))
BEGIN
SELECT * FROM table_namel IAS WHERE Id = ip_Id;
END$$
DELIMITER;
我尝试在变量中获取输入并将其传递给 where 子句 ti fetch records。 这是我尝试过的方法。它起作用了,为什么?
DELIMITER $$
DROP PROCEDURE IF EXISTS Demo_akg$$
CREATE PROCEDURE Demo_akg (IN ip_Id VARCHAR (100))
BEGIN
Select ip_Id into @ip_Id;
SELECT * FROM table_namel IAS WHERE Id = @ip_Id;
END$$
DELIMITER;
答:
0赞
Ivan Cachicatari
11/26/2022
#1
我们不知道table_namel的结构,但似乎该表有一个与输入参数同名的字段。
为了防止这种情况,请使用带有一些前缀/surfix的参数:
DELIMITER $$
DROP PROCEDURE IF EXISTS Demo_akg$$
CREATE PROCEDURE Demo_akg (IN p_ip_Id VARCHAR (100))
BEGIN
SELECT * FROM table_namel IAS WHERE Id = p_ip_Id;
END$$
DELIMITER;
评论