Python:访问oracle数据库并对其进行更新

Python:访问oracle数据库并对其进行更新,python,oracle,Python,Oracle,我正在访问oracle数据库并尝试使用python更新它。下面是我的代码: import cx_Oracle import pandas as pd import datetime import numpy import math conn = cx_Oracle.connect(conn_str) c = conn.cursor() def update_output_table(customer_id_list,column_name,column_vlaue_list) : num

我正在访问oracle数据库并尝试使用python更新它。下面是我的代码:

import cx_Oracle
import pandas as pd
import datetime
import numpy
import math
conn = cx_Oracle.connect(conn_str)
c = conn.cursor()
def update_output_table(customer_id_list,column_name,column_vlaue_list) :
    num_rows_to_add = len(customer_id_list)
    conn = cx_Oracle.connect(conn_str)
    c = conn.cursor()

    for i in range(0,num_rows_to_add,1) :
        c.execute("""UPDATE output SET """+column_name+""" = %s WHERE customer_id = %s""" %(column_vlaue_list[i],customer_id_list[i]))

total_transaction_df = pd.read_sql("""select distinct b.customer_id,count(a.transaction_id) as total_transaction from transaction_fact a,customer_dim b where a.customer_id = b.CUSTOMER_ID group by b.CUSTOMER_ID""",conn)

# Update this details to the output table
update_output_table(list(total_transaction_df['CUSTOMER_ID']),'TOTAL_TRANSACTION',list(total_transaction_df['TOTAL_TRANSACTION']))

conn.close()
我的程序正在完全执行,但我没有看到数据库表得到更新。有人能告诉我哪里出了问题吗


注:我是一个新手。很抱歉问了一些愚蠢的疑问。提前感谢。

连接关闭()之前,您缺少
连接提交()

你会发现一些你为什么需要它的信息。如果没有提交,您的代码将进行更新,然后在关闭连接时,所有未提交的更改都将回滚,这样您就不会看到数据库中的任何更改
您还可以设置
cx\u Oracle.Connection.autocommit=1
,但这不是推荐的方法,因为您正在失去对的控制