"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL 저장 프로시저에서 \"오류 1329: 데이터를 가져오거나 선택하거나 처리하지 않음\"을 해결하는 방법은 무엇입니까?

MySQL 저장 프로시저에서 \"오류 1329: 데이터를 가져오거나 선택하거나 처리하지 않음\"을 해결하는 방법은 무엇입니까?

2024-11-04에 게시됨
검색:647

How to Resolve \

"오류 1329: 데이터를 가져오거나 선택하거나 처리하지 않음"을 제거하는 방법

값을 반환하지 않는 저장 프로시저를 실행할 때, 사용자에게 "오류 1329: 데이터 없음 - 가져오거나 선택하거나 처리한 행이 없습니다."가 발생할 수 있습니다. 이 문제를 해결하려면 다음 단계를 따르세요.

다음 저장 프로시저를 고려하세요.

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

이 오류는 처리된 후에도 경고를 표시하는 MySQL의 동작에서 발생합니다. 이를 방지하려면 프로시저 끝에 다음 줄을 포함하십시오.

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

또는 테이블과 관련된 "더미" 문을 추가하세요. 루프 후에 성공적으로 실행됩니다. 예:

SELECT name INTO l_name FROM customer_tbl LIMIT 1;

이렇게 하면 MySQL의 버그/이상한 동작으로 인한 경고가 지워집니다(http: //dev.mysql.com/doc/refman/5.5/en/show-warnings.html).

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3