Я пытаюсь создать хранимую процедуру для создания некоторых отчетов в csv. Подпись выглядит следующим образом:MySQL Хранимая процедура переопределяет пустые параметры
CREATE PROCEDURE testSP (IN filename VARCHAR(100),
IN study VARCHAR(100))
SP создает запрос с условным ИНЕКЕМ на основе входного параметра в «кабинете».
DECLARE studyFilter TEXT DEFAULT '';
IF (study IS NOT NULL AND study != '') THEN
SET @studyFilter = CONCAT(' AND st.goid like \'%',study,'%\' ');
END IF;
Это хорошо работать, если я называю SP с не пустым параметром исследования, eg.g
call testSP('/tmp/test.csv','study1');
Но если я называю SP с пустым исследованием, вместо того, чтобы пустые параметры по SP использует последние значения исследования.
например. если я вызываю, в последовательности вызов testSP ('/ tmp/test1.csv', 'study1');
call testSP('/tmp/test2.csv','');
Во второй раз значение параметра остается «study1», поэтому запрос имеет неправильное предложение WHERE.
Как это возможно? как я могу правильно сбросить это значение параметра? Я использую MySQL 6.1 и MySQL Workbench для тестирования SP. Благодаря!