Dúvida com procedures MySQL

0 respostas
thiagofesta

Olá,

Estou fazendo uma procedure em mysql e estou com dúvida em relação ao funcionamento do Select... INTO...

Veja minha SQL:
DECLARE v_id_categoria_produto INT(9) DEFAULT NULL;
  DECLARE v_id_categoria_produto_pai INT(9) DEFAULT NULL;
  DECLARE v_nm_categoria_produto VARCHAR(80) DEFAULT NULL;
  DECLARE v_st_ativo CHAR(1) DEFAULT NULL;
  DECLARE v_nm_categoria_produto_pai VARCHAR(80) DEFAULT NULL;

   SELECT a.id_categoria_produto, a.id_categoria_produto_pai, a.nm_categoria_produto, a.st_ativo,
         IF(IFNULL(a.id_categoria_produto_pai, '') != '', (SELECT x.nm_categoria_produto FROM tb_categoria_produto x WHERE x.id_categoria_produto = a.id_categoria_produto_pai), '') AS nm_categoria_produto_pai
    INTO v_id_categoria_produto, v_id_categoria_produto_pai, v_nm_categoria_produto, v_st_ativo, v_nm_categoria_produto_pai
    FROM tb_categoria_produto a
   WHERE a.id_empresa = p_id_empresa
     #AND a.nm_categoria_produto LIKE '%%'
 /*    AND CASE WHEN p_id_categoria_produto_pai != 0
         THEN
           a.id_categoria_produto_pai = p_id_categoria_produto_pai
         ELSE
           0 = 0
         END
     AND CASE WHEN p_id_categoria_produto != 0
         THEN
           a.id_categoria_produto = p_id_categoria_produto
         ELSE
           0 = 0
         END*/
     AND a.st_ativo = 'S'
     LIMIT 1;

Se eu comentar a linha do INTO, ele retorna valores, caso contrário não.
Alguém sabe porque?

Eu preciso botar em variaveis porque depois vou usar abaixo disso ai.

Obrigado

Criado 20 de janeiro de 2009
Respostas 0
Participantes 1