【问题标题】:how to cast in MySQL stored procedures如何在 MySQL 存储过程中进行转换
【发布时间】:2012-02-15 18:10:48
【问题描述】:

尝试在 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

【问题讨论】:

    标签: mysql stored-procedures casting


    【解决方案1】:

    您需要在存储过程中声明 i。

    DELIMITER $$
    
    CREATE PROCEDURE `rateGenius`.`testFunc` ()
    BEGIN
    
    DECLARE i DOUBLE
    SET i = 100.0;
    
    END
    

    但不确定您实际上想用这个存储过程做什么。在这种情况下,您的 CAST/CONVERT 是不必要的,但您的这些函数的语法实际上是正确的。

    【讨论】:

      猜你喜欢
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 2010-10-23
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多