#mysql #stored-procedures #sp
#mysql #хранимые процедуры #sp
Вопрос:
У меня есть хранимая процедура в моей базе данных (MySQL). Но когда я вызываю ее с помощью ‘CALL’, она показывает ошибку. Количество аргументов указано правильно.
Я привел аргументы и попробовал.
Это мой sp;
DROP PROCEDURE IF EXISTS `test`.`usp_select_data` $$
CREATE DEFINER=`dm`@`` PROCEDURE `usp_select_data`(
tagids varchar(2000)
,tagCount int
,_searchType int
,_firstName varchar(200)
,_lastName varchar(200)
,_postcode varchar(200)
,_email varchar(200)
,_companyId TEXT
,_town varchar(200)
,_country varchar(200)
,_sourceId int
,_biztypeId int
,_startDate datetime
,_lastcontactedinMonth datetime
,_lastcontactedinthreeMonth datetime
,_lastcontactedinsixMonth datetime
,_lastcontactedinoneYear datetime
,_lastcontactedlessthanonemonth datetime)
И я вызвал в mysql как;
CALL usp_select_data('',0,0,'','','','','','','',0,0,'2019-04-04 00:00:00','','','','','');
Я ожидаю результат для моего запроса, который я объяснил в SP.
Но появилась ошибка ‘У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом ‘)’ в строке 1′
Комментарии:
1. Создает ли ваша процедура какие-либо подготовленные инструкции?
Ответ №1:
Вы передаете пустые строки в параметры datetime. Используйте NULL вместо этого, если вы не собираетесь передавать значение.
Комментарии:
1.
CALL
Синтаксис в остальном в порядке. Использование пустой строки в качестве datetimes при вызове процедуры должно вообще препятствовать запуску процедуры, поэтому, похоже, что в вопросе что-то не показано, вызывающее ошибку.