无法在python中获取MSSQL存储过程的结果输出表

无法在python中获取MSSQL存储过程的结果输出表,python,sql,sql-server,csv,pymssql,Python,Sql,Sql Server,Csv,Pymssql,我的python代码基于: 在Python中导入CSV文件 连接到SQL Server数据库 python-insert语句中的查询1,该语句从csv文件中插入表1中的值 python中的查询2-执行存储过程1,它是一个“select语句” python中的查询3-执行存储过程2,它是“表1的更新语句” python中的查询4-执行存储过程3,这是一个“select语句,该语句在表1上有多个表连接,并生成一个包含8列的结果” 将结果导出到新的csv文件 整个python代码执行成功,但生成了一个

我的python代码基于:

  • 在Python中导入CSV文件
  • 连接到SQL Server数据库
  • python-insert语句中的查询1,该语句从csv文件中插入表1中的值
  • python中的查询2-执行存储过程1,它是一个“select语句”
  • python中的查询3-执行存储过程2,它是“表1的更新语句”
  • python中的查询4-执行存储过程3,这是一个“select语句,该语句在表1上有多个表连接,并生成一个包含8列的结果”
  • 将结果导出到新的csv文件
  • 整个python代码执行成功,但生成了一个空csv文件,但没有从查询4的游标获得任何输出


    我的示例代码:

    import pyodbc
    import pandas as pd 
    import csv
    cnxn_1 = pyodbc.connect()
    with open("""csv path""") as csv1:
         reader = csv.reader(csv)
         cursor_1 = cnxn_1.cursor()
         cursor_1.execute("""INSERT INTO TABLE1""")
         cursor_1.commit()
    cnxn_1.close()   
    
    cnxn_2 = pyodbc.connect()  
    cursor_2 = cnxn_2.cursor()
    cursor_2.execute("""exec stored_proc_select_statement @parameter""")
    result_1 = cursor_2.fetchall()
    print (result_1)
    cnxn_2.close()
    
    cnxn_3 = pyodbc.connect() 
    cursor_3 = cnxn_3.cursor()
    cursor_3.execute("""exec stored_proc_update_statement @parameter""")
    cursor_3.commit()
    cnxn_3.close()
    
    cnxn_4 = pyodbc.connect() 
    cursor_4 = cnxn_4.cursor()
    cursor_4.execute("""exec stored_proc_final_select_statement @parameter""")
    cursor_4.commit()
    cnxn_4.close()
    result_2 = cursor_4.fetchall()
    print (result_1)
    columns = [column[0] for column in cursor_4.description]
    df = pd.DataFrame.from_records(result_2, columns=columns)
    print(df)
    df.to_csv("""new csv path""")
    cnxn_4.close()
    

    您过早地关闭了连接4:

    cnxn_4 = pyodbc.connect() 
    cursor_4 = cnxn_4.cursor()
    cursor_4.execute("""exec stored_proc_final_select_statement @parameter""")
    cursor_4.commit()
    # **cnxn_4.close()**  ## Comment this out, or remove it.
    result_2 = cursor_4.fetchall()
    print (result_1)
    columns = [column[0] for column in cursor_4.description]
    df = pd.DataFrame.from_records(result_2, columns=columns)
    print(df)
    df.to_csv("""new csv path""")
    cnxn_4.close()
    

    您过早地关闭了连接4:

    cnxn_4 = pyodbc.connect() 
    cursor_4 = cnxn_4.cursor()
    cursor_4.execute("""exec stored_proc_final_select_statement @parameter""")
    cursor_4.commit()
    # **cnxn_4.close()**  ## Comment this out, or remove it.
    result_2 = cursor_4.fetchall()
    print (result_1)
    columns = [column[0] for column in cursor_4.description]
    df = pd.DataFrame.from_records(result_2, columns=columns)
    print(df)
    df.to_csv("""new csv path""")
    cnxn_4.close()