2012-02-15 1 views
1

MySQL의 워크 벤치에 다음과 같은 루틴을 만들려고하면 "이 개체의 DDL 문이 구문 오류를 포함 당신은 당신이 변경되지 않은 DDL 문을 적용 하시겠습니까.?"산출 :MySQL의에 캐스팅하는 방법 저장 프로 시저

-- -------------------------------------------------------------------------------- 
-- 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 
+3

여기서, i는 정의 되나? –

답변

1

당신은 당신의 저장 프로 시저에 난을 선언해야합니다

이 같은 일을한다.

DELIMITER $$ 

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

DECLARE i DOUBLE 
SET i = 100.0; 

END 

실제로이 저장 프로 시저를 사용하여 수행하려는 작업에 대해 확신 할 수 없습니다. 이 경우에는 CAST/CONVERT은 필요하지 않지만 해당 기능에 대한 구문은 사실 올바른 것입니다.