2015-09-23 2 views
1

Я новичок в mysql, и я пытаюсь создать хранимую процедуру, но получаю синтаксическую ошибку из-за объявления переменной. Версия MySQL я использую 5.5.43 и моя процедура:Объявляется в mysql давая синтаксическую ошибку?

CREATE PROCEDURE spSearch 
(
    p_ACTION INT, 
    p_PROJECT_CUSTOMER INT,  
    p_PROJECT_NAME VARCHAR(50), 
    p_PROJECT_SALESPERSON INT, 
    p_PROJECT_MANAGER INT, 
    p_PROJECT_PMF INT, 
    p_PROJECT_TYPE INT, 
    p_PROJECT_DESIGNER INT, 
    p_PROJECT_AANDD INT, 
    p_PROJECT_REFD INT, 
    p_PROJECT_VENDOR INT, 
    p_PROJECT_GENERALCONTRACTOR INT, 
    p_PROJECT_PUNCHLIST varchar(1), 
    p_PROJECT_LOCATION INT, 
    p_PROJECT_CLIENTTYPE INT, 
    p_PROJECT_INSTALLDATE VARCHAR(50), 
    p_PROJECT_INSTALLDATETO VARCHAR(50), 
    p_PROJECT_ORDERENTRYDATE VARCHAR(50), 
    p_PROJECT_ORDERENTRYDATETO VARCHAR(50), 
    p_PROJECT_MOVEINDATE VARCHAR(50), 
    p_PROJECT_MOVEINDATETO VARCHAR(50), 
    p_PROJECT_ACTIVE_FLAG VARCHAR(1) 
) 
BEGIN 
    DECLARE ABC VARCHAR(1400); 
END; 

Я получаю эту ошибку:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 28 

Пожалуйста, помогите удалить эту ошибку синтаксиса.

+0

Вы уверены, что хотите удалить нас ко всем процедурам? – Marusyk

+0

Чтобы найти ошибку, я тестирую процедуру только с этой частью (которую я вам показал) и обнаружил, что объявление вызывает синтаксическую ошибку. –

+0

Но ошибка говорит 'near '@ABC = 1'' Я не вижу этот код в вашей процедуре – Marusyk

ответ

0

Кажется, что у вас есть проблемы с вашими разделителями. попробуйте следующее:

delimiter // 

CREATE PROCEDURE spSearch 
(
    p_ACTION INT, 
    p_PROJECT_CUSTOMER INT,  
    p_PROJECT_NAME VARCHAR(50), 
    p_PROJECT_SALESPERSON INT, 
    p_PROJECT_MANAGER INT, 
    p_PROJECT_PMF INT, 
    p_PROJECT_TYPE INT, 
    p_PROJECT_DESIGNER INT, 
    p_PROJECT_AANDD INT, 
    p_PROJECT_REFD INT, 
    p_PROJECT_VENDOR INT, 
    p_PROJECT_GENERALCONTRACTOR INT, 
    p_PROJECT_PUNCHLIST varchar(1), 
    p_PROJECT_LOCATION INT, 
    p_PROJECT_CLIENTTYPE INT, 
    p_PROJECT_INSTALLDATE VARCHAR(50), 
    p_PROJECT_INSTALLDATETO VARCHAR(50), 
    p_PROJECT_ORDERENTRYDATE VARCHAR(50), 
    p_PROJECT_ORDERENTRYDATETO VARCHAR(50), 
    p_PROJECT_MOVEINDATE VARCHAR(50), 
    p_PROJECT_MOVEINDATETO VARCHAR(50), 
    p_PROJECT_ACTIVE_FLAG VARCHAR(1) 
) 
BEGIN 
    DECLARE ABC VARCHAR(1400); 
END// 

delimiter ; 
+1

Спасибо, приятель, он работает. –

+0

Рад помочь – Marusyk

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