2016-10-20 17 views
-1

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

サインあなたは3 @変数を宣言したことがありますか? –

+0

私はあなたがそれを意味するものを得ていないので、おそらくそうではありません。あなたは説明できますか? – ylnor

+0

SPパラメータに値を持たない限り、不可能です。 –

答えて

1

呼び出し、このような手順:

CALL ob1.GET_eco_serie(3); 

だけ削除@

関連する問題