存储过程中缺少分号?

时间:2018-01-25 14:29:02

标签: mysql sql stored-procedures

这是我的代码

    CREATE  PROCEDURE busqueda
(
nombreq VARCHAR(200),
grupo VARCHAR(200)
)
BEGIN
SELECT nombre = nombreq FROM tabla1
END

END出现此错误

  

语法错误:缺少分号

最后添加分号不起作用

2 个答案:

答案 0 :(得分:2)

这是完整正确的代码:

    delimiter $$
    CREATE  PROCEDURE busqueda
    (
    nombreq VARCHAR(200),
    grupo VARCHAR(200)
    )
    BEGIN
    SELECT nombre = nombreq FROM tabla1;
    END
    $$
delimiter ;

答案 1 :(得分:1)

我怀疑这是你真正想要的代码。我最好的猜测是:

DELIMITER $$
CREATE  PROCEDURE busqueda (
    OUT out_nombre VARCHAR(200),
    IN in_grupo VARCHAR(200)
)
BEGIN
    SELECT in_nombre := t1.nombreq
    FROM tabla1 t1
    WHERE t1.grupo = in_grupo;
END;

DELIMITER ;

注意:

  • 请注意输入参数的命名约定。这样可以更容易避免存储过程中查询中的命名冲突。
  • 您的代码正在为参数指定任意nombreq。我添加了WHERE条款。
  • 我想 - 因为您正在设置值 - 您希望为输入参数更改值。
  • SELECT中,作业使用:=,而不是=(或into)。