"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como resolver “Erro 1329: Nenhum dado obtido, selecionado ou processado” em procedimentos armazenados do MySQL?

Como resolver “Erro 1329: Nenhum dado obtido, selecionado ou processado” em procedimentos armazenados do MySQL?

Publicado em 2024-11-04
Navegar:394

How to Resolve \

Como eliminar o "Erro 1329: Nenhum dado obtido, selecionado ou processado"

Ao executar procedimentos armazenados que não retornam valores, os usuários podem encontrar “Erro 1329: Sem dados – zero linhas buscadas, selecionadas ou processadas”. Para resolver esse problema, siga estas etapas:

Considere o seguinte procedimento armazenado:

CREATE PROCEDURE `testing_proc`()  
    READS SQL DATA  
BEGIN  
    DECLARE done INT DEFAULT 0;
    DECLARE l_name VARCHAR(20);
    DECLARE my_cur CURSOR FOR
        SELECT name FROM customer_tbl;
    OPEN my_cur;
        my_cur_loop:
        LOOP FETCH my_cur INTO l_name;
            IF done = 1 THEN
                LEAVE my_cur_loop;
            END IF;
            INSERT INTO names_tbl VALUES(l_name);
        END LOOP my_cur_loop;
    CLOSE my_cur;
END

O erro decorre do comportamento do MySQL de exibir um aviso mesmo quando ele foi tratado. Para evitar isso, inclua a seguinte linha no final do procedimento:

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

Alternativamente, adicione uma instrução "fictícia" que envolva uma tabela e é executado com sucesso após o loop, por exemplo:

SELECT name INTO l_name FROM customer_tbl LIMIT 1;

Isso limpará o aviso devido a um bug/comportamento estranho no MySQL (referenciado em http: //dev.mysql.com/doc/refman/5.5/en/show-warnings.html).

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3