首页 > 解决方案 > MYSQL中带参数的存储过程

问题描述

我有一个关于存储过程的问题:

创建一个名为的存储过程format_currency,它接受一个字符和一个双精度数。它将返回VARCHAR(32)前面带有符号的 a,后面是数字到小数点后 2 位。例如,format_currency('$', 123.4)应该返回 $123.40

这是我的代码:

CREATE OR REPLACE PROCEDURE format_currency(IN c VARCHAR2, IN n DOUBLE(9,2))
AS
BEGIN
  SELECT   CONCAT(c,',' n);
END; 

它不起作用,我不知道如何在 BEGIN 和 END 中编写代码。

非常感谢您的帮助。

亨利

标签: mysql

解决方案


我有一个类似的问题,其他人回答的问题在 MySQL 中对我没有任何帮助。这是一个工作解决方案,其中有 2 个参数为“SIGN”和“MONEY”,并创建了一个名为“NEWRESULT”的变量,您可以将其设置为 0,然后将其设置为“SIGN”和“MONEY”的连接。

    DELIMITER //
    CREATE PROCEDURE format_currency`enter code here`
    (IN SIGN char(1),IN MONEY double(9,2))
    BEGIN
        declare NEWRESULT char(8);
        set NEWRESULT=0;
        SET NEWRESULT=(SELECT CONCAT(SIGN,MONEY));
        SELECT NEWRESULT;
    END//
    DELIMITER ;

推荐阅读