使用Python怎么对oracle数据库进行读写操作

使用Python怎么对oracle数据库进行读写操作?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1. 所需Python工具库

cx_Oracle,pandas,可以使用通过控制台使用pip进行安装(电脑中已经安装)

使用Python怎么对oracle数据库进行读写操作

2. 实现查询操作

#工具库导入
importpandasaspd
importcx_Oracle
#注:设置环境编码方式,可解决读取数据库乱码问题
importos
os.environ['NLS_LANG']='SIMPLIFIEDCHINESE_CHINA.UTF8'
#实现查询并返回dataframe
defquery(table)
host="127.0.0.1"#数据库ip
port="1521"#端口
sid="test"#数据库名称
dsn=cx_Oracle.makedsn(host,port,sid)
#scott是数据用户名,tiger是登录密码(默认用户名和密码)
conn=cx_Oracle.connect("scott","tiger",dsn)
#SQL语句,可以定制,实现灵活查询
sql='select*from'+table
#使用pandas的read_sql函数,可以直接将数据存放在dataframe中
results=pd.read_sql(sql,conn)
conn.close
returnresults
test_data=query(test_table)#可以得到结果集

3. 实现插入操作

#工具库导入
importpandasaspd
importcx_Oracle
#实现插入功能
definput_to_db(data,table):
host="127.0.0.1"#数据库ip
port="1521"#端口
sid="test"#数据库名称
dsn=cx_Oracle.makedsn(host,port,sid)
#scott是数据用户名,tiger是登录密码(默认用户名和密码)
conn=cx_Oracle.connect("scott","tiger",dsn)
#建立游标
cursor=connection.cursor()
#sql语句,注意%s要加引号,否则会报ora-01036错误
query="INSERTINTO"+table+"(name,gender,age)VALUES('%s','%s','%s')"
#逐行插入数据
foriinrange(len(data)):
name=data.ix[i,0]
gender=data.ix[i,1]
age=data.ix[i,2]
#执行sql语句
cursor.execute(query%(name,gender,age))
connection.commit()
#关闭游标
cursor.close()
connection.close()
#测试插入数据库
#测试数据集
test_data=pd.DataFrame([['小明','男',18],['小芳','女',18]],index=[1,2],columns=['name','gender','age'])
#调用函数实现插入
input_to_db(test_data,test_table1)

4. Python备份Oracle数据库

#!/usr/bin/python
#coding=utf-8
importthreading
importos
importtime
#用户名
user='username'
#密码
passwd='password'
#备份保存路径
savepath='/home/oracle/orcl_bak/'
#要备份的表
tables='tables=department,employee'
#备份周期
circle=2.0
#备份命令
globalbak_command
bak_command='exp'+user+'/'+passwd+'file='+savepath
deforclBak():
now=time.strftime('%Y-%m-%d%H:%M:%S')
command=bak_command+now+'.dmp'+tables
printcommand
ifos.system(command)==0:
print'备份成功'
else:
print'备份失败'
globalt
t=threading.Timer(circle,orclBak)
t.start()
t=threading.Timer(circle,orclBak)
t.start()

关于使用Python怎么对oracle数据库进行读写操作问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注恰卡编程网行业资讯频道了解更多相关知识。

发布于 2021-04-08 13:38:12
收藏
分享
海报
0 条评论
166
上一篇:利用JavaScript如何实现一个碰撞检测功能示例 下一篇:使用PHP怎么实现mysql读写分离
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码