>데이터 베이스 >MySQL 튜토리얼 >Python의 `cursor.stored_results()`를 사용하여 MySQL 저장 프로시저에서 결과를 검색하는 방법은 무엇입니까?

Python의 `cursor.stored_results()`를 사용하여 MySQL 저장 프로시저에서 결과를 검색하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-01 12:38:15266검색

How to Retrieve Results from a MySQL Stored Procedure using Python's `cursor.stored_results()`?

Python 커서를 사용하여 저장 프로시저에서 결과 검색

이 문서에서는 Python 커서를 사용하여 MySQL 저장 프로시저 호출에서 결과를 검색하는 문제를 다룹니다. 커서. 데이터베이스에 성공적으로 연결하고 일반 SQL 쿼리에서 커서.execute()를 사용했음에도 불구하고,cursor.fetchall() 또는cursor.fetchone()을 사용하여 저장 프로시저 호출에서 결과를 가져오려고 하면 "mysql. Connector.errors.InterfaceError: 가져올 결과 세트가 없습니다."

해결책

해결책은 다음에 있습니다. cursor.stored_results()를 사용하여 결과 집합을 검색합니다. 이 방법은 사용 가능한 모든 결과 집합을 반복하여 프로그래머가 원하는 결과 집합으로 작업할 수 있도록 합니다.

다음 코드는 올바른 접근 방식을 보여줍니다.

import mysql.connector

cnx = mysql.connector.connect(user='root', host='127.0.0.1', database='mytestdb')
cnx._open_connection()
cursor = cnx.cursor()

cursor.callproc("getperson", [1])

for result in cursor.stored_results():
    people = result.fetchall()

for person in people:
    print(person)

cnx.close()

이 코드는 저장된 결과 집합에서 결과를 성공적으로 가져옵니다. 마주치지 않고 절차

고려 사항

MySQL Python 커넥터는 여러 SELECT 문이 없어도 여러 결과 집합을 할당할 수 있다는 점에 주목할 가치가 있습니다. 이 할당은 저장 프로시저에 없는 INOUT 및 OUT 변수가 포함되어 있기 때문에 발생할 수 있습니다. 그럼에도 불구하고,cursor.stored_results()를 사용하면 이러한 잠재적 할당을 효과적으로 처리하고 성공적인 결과 검색이 가능합니다.

위 내용은 Python의 `cursor.stored_results()`를 사용하여 MySQL 저장 프로시저에서 결과를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.