sql >> データベース >  >> RDS >> Mysql

Pythonカーソルを使用してストアドプロシージャから結果を返すことはできません

    結果セットの1つを選んでみましたか?

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

    SELECTが1つしかない場合でも、複数の結果セットに割り当てられている可能性があります stmt。 PHPのMySQLiストアドプロシージャでは、これを実行してINOUT変数とOUT変数を返すことができます(これも、どちらもありませんが、とにかく割り当てられている可能性があります)。

    私が使用している(機能している)完全なコードは次のとおりです:

    import mysql.connector
    
    cnx = mysql.connector.connect(user='me',password='pw',host='localhost',database='mydb')
    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()
    


    1. MariaDBでのCHAR()のしくみ

    2. SYSDATETIMEOFFSET()SQL Server(T-SQL)の例

    3. SQL Server(T-SQL)の既存のテーブルに新しい列を追加する方法

    4. SQL Server Management Studio(SSMS)で垂直ブロックを選択して編集する-SQL Server/TSQLチュートリアルパート9