2016-10-20 4 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

Заявили вы переменную @ 3? –

+0

Я не понимаю, что вы подразумеваете под этим, так что, вероятно, нет. Могли бы вы объяснить? – ylnor

+0

Это невозможно, если у вас нет значения для параметра SP. –

ответ

1

вызов процедура, как это:

CALL ob1.GET_eco_serie(3); 

Просто удалите знак @

Смежные вопросы