我正在尝试使用带有一个参数的简单查询的Mysql(MariDB)存储过程。但是,调用过程的结果与初始查询不同,我不明白为什么。
这是我的初始查询:
MariaDB [(none)]> SELECT * FROM ob1.eco_serie WHERE TS_ID = 3;
+-----+-------+---------------------+---------------------+------+
| id | TS_ID | Date_period | Date_publi | Val |
+-----+-------+---------------------+---------------------+------+
| 4 | 3 | 1996-10-31 00:00:00 | 1996-11-01 00:00:00 | 50.5 |
| 5 | 3 | 1996-11-30 00:00:00 | 1996-12-02 00:00:00 | 53 |
| 6 | 3 | 1996-12-31 00:00:00 | 1997-01-02 00:00:00 | 55.2 |
... ... ........... ............. ...
然后我制作了一个这个查询的存储过程:
MariaDB [(none)]> CREATE PROCEDURE ob1.GET_eco_serie (IN par_serie_ID INT)
-> BEGIN
-> SELECT * FROM ob1.eco_serie WHERE TS_ID = par_serie_ID;
-> END//
Query OK, 0 rows affected (0.06 sec)
但是,当我使用与之前相同的参数调用此过程时,我得到一个空结果:
MariaDB [(none)]> CALL ob1.GET_eco_serie(@3);
Empty set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
知道这里发生了什么吗?感谢。
答案 0 :(得分:1)
调用这样的程序:
CALL ob1.GET_eco_serie(3);
只需删除@符号
即可