Reputation: 517
I have simply created procedure which take 2 inputs and give 2 outputs.
When I run query separately it gives me proper output, But If I will try to call procedure It produce me null
result
while calling Query:
SELECT field1, field2
INTO @var1, @var2
FROM MyTable ID=? and Name=?
and then :
select @var1, @var2;
But If I combine the same code in procedure it will give null
for both fields.
Procedure:
DELIMITER $$
CREATE DEFINER=`user`@`localhost` PROCEDURE `My_Proc`(
IN `ID` INT,
IN `Name` VARCHAR(20)
-- OUT `result` INT,
-- OUT `result1` INT
)
BEGIN
set @var1 = 0;
set @var2 = 0;
set @query := CONCAT("SELECT
field1, field2
INTO @var1, @var2
FROM MyTable ID=? and Name=?");
PREPARE stmt FROM @query;
Execute stmt USING @Id,@Name;
DEALLOCATE PREPARE `stmt`;
select @var1,@var2;
END
I tried to call select @var1,@var2;
outside procedure but it also give null fields.
I am working in Mysql Workbench 6.0
Upvotes: 0
Views: 52
Reputation: 2454
you have some mistakes in your procedure thats have been removed below..........have a look
DELIMITER $$
CREATE DEFINER=`user`@`localhost` PROCEDURE `My_Proc`(
IN `ID` INT,
IN `Name` VARCHAR(20)
-- OUT `result` INT,
-- OUT `result1` INT
)
BEGIN
set @var1 = 0;
set @var2 = 0;
set @query := CONCAT("SELECT
field1,field2
INTO @var1, @var2
FROM MyTable where ID=? and Name=?");
PREPARE stmt FROM @query;
Execute stmt USING @Id,@Name;
DEALLOCATE PREPARE stmt ;
select @var1,@var2;
END
Upvotes: 1