存储过程 returns 与查询不同的结果
Stored Procedure returns different result than Query
我正在尝试使用带有一个参数的简单查询的 Mysql(MariDB) 存储过程。但是调用的Procedure的结果和最初的查询不一样,我不明白为什么。
这是我的初始查询:
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)
知道这里发生了什么吗?谢谢
调用这样的程序:
CALL ob1.GET_eco_serie(3);
只需删除@符号
我正在尝试使用带有一个参数的简单查询的 Mysql(MariDB) 存储过程。但是调用的Procedure的结果和最初的查询不一样,我不明白为什么。
这是我的初始查询:
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)
知道这里发生了什么吗?谢谢
调用这样的程序:
CALL ob1.GET_eco_serie(3);
只需删除@符号