#从excel读取数据写入mysql
def excel_to_mysql(filename):
ip = ‘133.0.186.3‘
port = 11521
SID = ‘BILLDB‘
dsn_tns = ora.makedsn(ip, port, SID)
conn = ora.connect(‘username‘, ‘password‘, dsn_tns)
cur = conn.cursor() #连接数据库
book = xlrd.open_workbook(filename)
sheet = book.sheet_by_name(‘sheet1‘)
rows = sheet.nrows #获取行数
for r in range(1,rows): #将标题之外的其他行写入数据库
r_values = sheet.row_values(r)
print(‘----‘)
print(r_values)
#sql = ‘insert into stu2 values(%s,%s,%s,%s,%s,%s,%s,%s)‘
sql = ‘insert into stu2 values(:1,:2,:3,:4,:5,:6,:7,:8)‘
#报错cx_Oracle.DatabaseError: ORA-01036: 非法的变量名/编号,使用占位符:解决
data = cur.execute(sql,r_values) #将每一行插入sql
conn.commit() #插入所有数据后提交
cur.close()
conn.close()
excel_to_mysql(‘疑似未实名.xlsx‘)
遇到的问题就是提示错误:cx_Oracle.DatabaseError: ORA-01036: 非法的变量名/编号,这里需要是用的参数需要使用 :占位符可以解决此问题,