Вызов хранимой процедуры MySQL

#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 при вызове процедуры должно вообще препятствовать запуску процедуры, поэтому, похоже, что в вопросе что-то не показано, вызывающее ошибку.