2013-10-12 2 views
0

У меня есть следующая инструкция, введенная в MySQL5.6 Command Line Client. Однако была получена следующая ошибка. Я даже не смог добавить в END // Delimiter; после выбора.Не удается создать хранимую процедуру

В то же время мне было интересно, после того, как хранимая процедура была успешно создана, как я могу вызвать хранимую процедуру без командной строки, но используя java-коды.

Просьба оказать помощь. Очень ценим!

Error

+1

это чисто связанное с базой данных, то почему Java тег здесь – SpringLearner

+0

Переместить это: http://dba.stackexchange.com/ – raffian

+0

@raffian Я пометил его dba.stackexchange.com – SpringLearner

ответ

1
mysql> delimiter // 

mysql> CREATE PROCEDURE GetUStocke() 
-> BEGIN 
-> SELECT * FROM buystocks ; 
-> END// 
+0

omg, так thats причина. спасибо за вашу помощь :) – iceraven

+0

hihi, скажем, я использовал командную строку sql для успешного создания этой хранимой процедуры. Как заменить его типичным оператором sql, который я пишу на своих страницах java, чтобы я мог вызвать сохраненную процедуру? – iceraven

+0

Я не получаю ваш вопрос ... Может у, пожалуйста, объясните это правильно? –

1

Вам нужно пространство между ограничителем и символом вы меняете разделитель.

mysql> DELIMITER // 

Ключ, что это сработало должно быть то, что вы получите еще mysql> быстрые вместо «незавершенной команды» проворная ->.


Re ваш комментарий, если вам нужно вызвать хранимую процедуру из приложения Java, обратитесь к руководству по ГОО заявления: http://dev.mysql.com/doc/refman/5.6/en/connector-j-usagenotes-statements-callable.html

+0

спасибо! это сработало! :) – iceraven

+0

hihi, скажем, я использовал командную строку sql для успешного создания этой хранимой процедуры. Как заменить его типичным оператором sql, который я пишу на своих страницах java, чтобы я мог вызвать сохраненную процедуру? – iceraven

2

поддавки пространство между delimiter и //. После того, как ваш select заявления написать end; на следующей строке и // в последней строке (после end; в следующей новой строке)

delimiter // 
create procedure GetUStocks() 
Begin 
Select * From buystocks; 
end; 
// 
+0

спасибо! это сработало! :) – iceraven

0

Ну, серьезно, я был шокирован, и до сих пор находятся на этом случайном открытии. Это просто потому, что вы не используете разделитель, который вы определили для завершения процедуры. Здесь я могу приложить два фрагмента, которые помогут проиллюстрировать, что порождает ошибку.

Screenshot

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