Python读写oracle数据库
最近项目中需要用到Python调用oracle实现读写操作,踩过很多坑,历尽艰辛终于实现了。性能怎样先不说,有方法后面再调优嘛。现在把代码和注意点记录一下。
1. 所需Python工具库
cx_Oracle,pandas,可以使用通过控制台使用pip进行安装(电脑中已经安装)
2. 实现查询操作
#工具库导入
import pandas as pd
import cx_Oracle
# 注:设置环境编码方式,可解决读取数据库乱码问题
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
#实现查询并返回dataframe
def query(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
return results
test_data = query(test_table) # 可以得到结果集
3. 实现插入操作
#工具库导入
import pandas as pd
import cx_Oracle
#实现插入功能
def input_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 = "INSERT INTO"+table+"(name,gender,age) VALUES ('%s', '%s', '%s')"
#逐行插入数据
for i in range(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)
Python读写oracle数据库的更多相关文章
- python——连接Oracle数据库
前言 Python自带的模块中有很多操纵文件的.我们可以把文件的数据读出来,经过处理还可以将数据写入文件中.但是对于数据的管理和分析来说,数据库还是专业一些.如果Python能和数据库结合在一起,那么 ...
- .Net 中读写Oracle数据库常用两种方式
.net中连接Oracle 的两种方式:OracleClient,OleDb转载 2015年04月24日 00:00:24 10820.Net 中读写Oracle数据库常用两种方式:OracleCli ...
- python对oracle数据库的操作
1 Oracle数据库 1.1 Oracle环境配置&客户端连接 1.1.1 下载安装Oracle绿色版客户端instantclient: 到o ...
- python操作oracle数据库-查询
python操作oracle数据库-查询 参照文档 http://www.oracle.com/technetwork/cn/articles/dsl/mastering-oracle-python- ...
- Python 连接 Oracle数据库
1.环境设置 [root@oracle ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@oracle ~]# python - ...
- Python 连接Oracle数据库
连接:python操作oracle数据库 python——连接Oracle数据库 python模块:cx_Oracle, DBUtil 大概步骤: 1. 下载模块 cx_Oracle (注意版本) ...
- python操作oracle数据库
本文主要介绍python对oracle数据库的操作学习 包含:oracle数据库在Windows操作系统下的安装和配置.python需要安装的第三方拓展包以及基本操作的样例学习. 1 ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- Python操作Oracle数据库:cx_Oracle
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
随机推荐
- Node.js文件操作一
Node.js和其他语言一样,也有文件操作.先不说node.js中的文件操作,其他语言的文件操作一般也都是有打开.关闭.读.写.文件信息.新建删除目录.删除文件.检测文件路径等.在node.js中也是 ...
- web前端--实现前后端分离的心得
1.实现前后端分离的心得 2.前后端分离实践 3.谈谈前后端的分工协作 4.从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式) 4.1.REST风格框架实战:从MVC到前后端分离 ...
- c#基础学习(0630)之面向对象总习
面向对象总习 1.封装.继承.多态 ****字段:存储数据,访问修饰符应该设置为private私有的 ****属性:保护字段,对字段的取值和赋值的限定 ****new关键字: 1.在堆中开辟空间(引用 ...
- ant编译apache-nutch-2.2.1结合mysql实现爬虫的安装配置全过程
之前的数据抓取都是用的八爪鱼软件,老大突发奇想要我自己搞个爬虫来抓取数据,网上找找貌似apache的nutch比较合适,于是就开始安装这啥nutch. 对于一个linux零基础的人来说,还要先学学li ...
- 使用eclipse 开发lisp
https://www.ibm.com/developerworks/cn/opensource/os-eclipse-lispcusp/ eclipse有一个插件,可以支持lisp的开发,叫cusp ...
- Node.js Cookie管理
Cookie 管理 我们可以使用中间件向 Node.js 服务器发送 cookie 信息,以下代码输出了客户端发送的 cookie 信息: var express=require('express') ...
- template-web.js 真分页绑定表格
<div class="layui-table-box"> <div class="layui-tabl ...
- iOS字体打印
//打印所以字体 NSArray *familyNames = [UIFont familyNames]; for(NSString *familyName in familyNames) ...
- Linux下svn的安装与部署
最近工作碰到一个问题,我和一个同伙负责开发一个管理系统,基于原来的代码上进行修改,每当他修改之后,我要再修改都要和他确定是不是最新的文件,才能进行修改.非常影响工作的效率,所以在网上找了关于svn的使 ...
- BZOJ2227 [Zjoi2011]看电影(movie)
Description \(k\)个座位,\(n\)个人依次过来,每人随机从\(k\)个座位中选择一个,并从它开始不停向后走直到遇到空座位坐下.求所有人都能坐下的概率(即没有人走到第\(k+1\)个位 ...