MySQL存储过程参数IN和OUT

时间:2015-12-29 10:49:41

标签: mysql stored-procedures

我是MySQL存储过程的新手,为了初始目的,我创建了这个小程序。只需输入一个输入,用它来“!!”并指定给OUT p2。我做错了什么?

CREATE DEFINER=`root`@`localhost` PROCEDURE `testing`(IN `p1` CHAR(50), OUT `p2` TEXT)
    LANGUAGE SQL
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT 'this is comment'
BEGIN

set p2 = "Hi! " + p1;

END

当我使用

调用程序时
CALL `testing`('Joe', @p);
select @p;

它给了我警告

Truncated incorrect double value: 'Hi!'
Truncated incorrect double value: 'Joe'

对初学者的任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

像这样编写程序

 CREATE DEFINER=`root`@`localhost` PROCEDURE `testing`(IN `p1` CHAR(50), OUT `p2` TEXT)
        LANGUAGE SQL
        NOT DETERMINISTIC
        CONTAINS SQL
        SQL SECURITY DEFINER
        COMMENT 'this is comment'
    BEGIN

    set p2 = CONCAT("Hi! " , p1);

    END