2012-02-15 10 views
1

は、MySQL Workbenchで、次のルーチンを作成しようとすると「このオブジェクトの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は不要ですが、実際にはこれらの関数の構文は正しいです。

関連する問題