2016-10-20 194 views
-1

我正在尝试使用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

我不明白你的意思,所以可能不会。你能解释一下吗? – ylnor

+0

这是不可能的,除非你对SP参数没有任何价值。 –

回答

1

呼叫这样一个过程:

CALL ob1.GET_eco_serie(3); 

只是删除@你声明的变量@ 3签署