как привести в хранимых процедурах MySQL - PullRequest
1 голос
/ 15 февраля 2012

Попытка создать следующую подпрограмму в MySQL Workbench выдает «Оператор DDL этого объекта содержит синтаксические ошибки. Вы уверены, что хотите применить оператор DDL без изменений?»:

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE PROCEDURE `dbName`.`testFunc` ()
BEGIN
SET i = CAST(100 AS DOUBLE);
END

Есть идеи?

Это делает то же самое:

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE PROCEDURE `rateGenius`.`testFunc` ()
BEGIN

SET i = CONVERT(100, DOUBLE);
END

1 Ответ

1 голос
/ 15 февраля 2012

Вы должны объявить i в вашей хранимой процедуре.

DELIMITER $$

CREATE PROCEDURE `rateGenius`.`testFunc` ()
BEGIN

DECLARE i DOUBLE
SET i = 100.0;

END

Не уверен, что вы на самом деле пытаетесь сделать с этим сохраненным процессом. Ваш CAST/CONVERT в этом случае не нужен, но ваш синтаксис для этих функций на самом деле правильный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...