import cx_Oracle
import os
import pandas as pd
import xlrd
from sqlalchemy import create_engine
from sqlalchemy import types
# 设置环境编码方式,可解决读取数据库中文乱码问题
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
# 用户名/密码@IP:端口/实例名
conn = cx_Oracle.connect('用户名/密码@IP:端口/实例名')
cursor = conn.cursor()
print('连接数据库成功!')
cursor.execute("select *from t_test_c ")
#读取文件本地文件在E盘目录下名称为ceshi13.xls
path = r"E:\soft\ceshi13.xls"
data = pd.read_excel(path)
print('读取excel成功!')
#通过数组list_3是整个表的参数
list_3 = []
for i in range(data.shape[0]):
#数组insert_list3是一行的参数
insert_list3 = []
#读取一行的各个列的值
for j in range(data.shape[1]):
#一行的各个列拼接成一行
insert_list3.append(str(data.iloc[i, j]))
print(insert_list3)
list_3.append(insert_list3)
print ('list_3',list_3)
#生成语句 --插入insert,表t_test_c表有14列
sql_3 ='insert into t_test_c values(:0,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14)'
print ('sql_3',list_3)
#生成语句执行,传参
cursor.executemany(sql_3,list_3)
print('执行插入成功!')
#提交
conn.commit()
#关闭
conn.close()
print('执行成功')
读取excel文件并写入数据库中,不用下载Oracle客户端,下载好cx_oracle软件包,如果本地连接PLSQL的话需要instantclient,把instantclient中的oci.dll,oraocci11.dll,oraociei11.dll 至python安装目录下的 Lib\site-packages,就可以直接连接了。
小白自学中摸索出的,有什么问题我们一起探讨。