执行mysql存储过程时出错

iq0todco  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(260)

我创建了一个简单的存储过程,它将删除一个视图。我正在学习mysql中的存储过程,请耐心听我说,

DELIMITER $$
CREATE PROCEDURE dropView (
    IN viewName varchar(4000)
)
BEGIN

    SET @sql:=CONCAT('DROP VIEW ',@viewName);
        PREPARE dynamic_statement FROM @SQL;
        EXECUTE dynamic_statement;
        DEALLOCATE PREPARE dynamic_statement;

END$$
DELIMITER ;

我这样称呼上面的人,

SET @theView = '`Report`;';

CALL dropView(@theView);

我收到了错误信息,
错误代码:1064。sql语法有错误;检查与mysql服务器版本相对应的手册,以获得在第1行使用接近“null”的正确语法
我正在使用mysql 8.0.17
根据这一点,我可以在准备好的mysql中使用“create/drop view”。

qgelzfjb

qgelzfjb1#

@viewNameis a 9.4。用户定义变量和 viewName 一个存储过程参数(13.1.17 create procedure和create function语句)是不同的变量。

相关问题