存储过程返回与Query不同的结果

时间:2016-10-20 08:59:54

标签: mysql stored-procedures mariadb

我正在尝试使用带有一个参数的简单查询的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)

知道这里发生了什么吗?感谢。

1 个答案:

答案 0 :(得分:1)

调用这样的程序:

CALL ob1.GET_eco_serie(3);

只需删除@符号

即可