Python 커서로 MySQL 저장 프로시저 호출
Python 애플리케이션에서 MySQL 저장 프로시저를 활용하는 경우 결과 검색을 올바르게 처리하는 것이 중요합니다. 간단해 보일 수도 있지만 프로시저에서 결과를 검색하면 예상치 못한 오류가 발생할 수 있습니다.
cursor.fetchall()을 사용할 때 "가져올 결과 세트가 없습니다."라는 예외가 발생하는 것이 일반적인 문제입니다. 이는 저장 프로시저가 여러 결과 세트를 반환하는 경우가 많고cursor.fetchall()이 하나의 세트만 반복하도록 설계되었기 때문에 발생합니다.
이 문제를 해결하려면 관심 있는 특정 결과 세트를 검색해야 합니다. 이는 결과 집합 생성기를 반환하는 커서.stored_results() 메서드를 사용하여 수행할 수 있습니다. 그런 다음 fetchall()을 사용하여 각 결과 집합을 개별적으로 가져올 수 있습니다.
for result in cursor.stored_results(): people = result.fetchall()
특정 시나리오에서는 커서.execute()를 사용할 때 "여러 쿼리가 있는 문에 cmd_query_iter 사용" 오류가 발생할 수도 있습니다. 이는 커넥터가 프로시저 호출을 다중 쿼리 문으로 잘못 해석하기 때문에 발생합니다.
이 문제를 해결하려면 다중 쿼리를 실행할 때 multi=True 매개 변수를 명시적으로 설정하는 것이 좋습니다. 이렇게 하면 커넥터가 이러한 시나리오를 올바르게 처리할 수 있습니다.
cursor.execute("call getperson(1)", multi=True)
이러한 지침을 따르면 저장 프로시저에서 결과를 효과적으로 검색하고 필요에 따라 여러 결과 집합을 처리할 수 있습니다.
위 내용은 Python의 MySQL 저장 프로시저에서 결과를 올바르게 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!