sql—在mysql中,是否所有局部变量声明都需要在其他操作之前完成?

bybem2ql  于 2021-08-09  发布在  Java
关注(0)|答案(0)|浏览(170)

我正在将我的sybase代码移植到mysql,我正在讨论这个问题,可以在下面的代码示例中演示:

DELIMITER //

CREATE PROCEDURE proc_with_local_variable(
   p_arg char(1)
)
sp_lbl:
BEGIN
    DECLARE local_var INT DEFAULT 0;
    set local_var = 123;   
    DECLARE local_var2 INT DEFAULT 0;

    SELECT local_var, p_arg;

    SELECT local_var, p_arg, local_var2;

END//

DELIMITER ;

call proc_with_local_variable("a");

在我看来,如果在声明之后执行set、select或其他操作,后续的声明就会失败并出现错误(或类似错误)。

ERROR: 1064 at line 4: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE local_var2 INT DEFAULT 0;

如果我把declare local\u var2移到一行,就在declare local\u var之后,就没有问题了。
我哪里都没见过这种记录。我错过什么了吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题