Help with Stored Proc in mysql varchar variables

Help with Stored Proc in mysql varchar variables

am 29.08.2006 10:36:35 von moira.shrimpton

Hi,

Heres a little test sp, I can't get it to use the @H variable in the
select , what am i doing wrong?, been messing for days now :(

The row caount always comes back as 0 , but if I just change the line
"SELECT count(*) INTO s from test where url=@'H';" to use url='tony'
for example or any other value it works as expected.



drop procedure ts;
delimiter //

CREATE PROCEDURE ts (
IN H varchar(255),
IN CheckStatus INT,
OUT Result varchar(10)
)
BEGIN

DECLARE s int DEFAULT 0;

SELECT H as N;

SELECT s AS TONY;


SELECT count(*) INTO s from test where url=@'H';

SELECT s AS TONY;

IF s > 1
THEN select "OK" into Result;
ELSE select "FAIL" into Result;
END IF;
END;
//

delimiter ;

call ts('tony','1',@Result);
select @Result;



Here are the results as you can see @H is set to 'tony' before the
select count(*) and s = 0 before and after

mysql> delimiter //
mysql>
mysql> CREATE PROCEDURE ts (
-> IN H varchar(255),
-> IN CheckStatus INT,
-> OUT Result varchar(10)
-> )
-> BEGIN
->
-> DECLARE s int DEFAULT 0;
->
-> SELECT H as N;
->
-> SELECT s AS TONY;
->
->
-> SELECT count(*) INTO s from test where url=@'H';
->
->
-> SELECT s AS TONY;
->
-> IF s > 1
-> THEN select "OK" into Result;
-> ELSE select "FAIL" into Result;
-> END IF;
-> END;
-> //
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> delimiter ;
mysql>
mysql> call ts('tony','1',@Result);
+------+
| N |
+------+
| tony |
+------+
1 row in set (0.00 sec)

+------+
| TONY |
+------+
| 0 |
+------+
1 row in set (0.00 sec)

+------+
| TONY |
+------+
| 0 |
+------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> select @Result;
+---------+
| @Result |
+---------+
| FAIL |
+---------+
1 row in set (0.00 sec)



The test table is

+-------+
| url |
+-------+
| tony |
| moira |
+-------+



Please let me know what I'm doing wrong .. Many thanks