python oracle数据库操作_用Python操作Oracle数据库(cx_Oracle库)

用Python操作Oracle数据库(cx_Oracle库)

一、安装cx_Oracle库

cx_Oracle驱动包的安装

pip install cx_Oracle

如果你不成功,你可以使用如下链接,下载对应版本的[安装包]

如果还是不会,再提供下面一个安装说明,希望对你有帮助

如果本机没有安装Oracle数据库,又要通过Python访问远程服务器上的Oracle,那么需要在本机上安装instantclient。安装可以从Oracle官网获取安装包,如果没有账号可以自行注册。注册完成后可以免费获取不同版本的instantclient。下载地址

1)、创建文件路径:

D:\Program Files\oracle\instantclient_11_2

将此路径添加到系统的Path中

e6bdf8ad571d

2)、下载 instantclient 64位 放置到 1) 创建的路径下

3)、将文件中后缀为 dll 的文件复制到 anaconda 安装位置

e6bdf8ad571d

e6bdf8ad571d

4)、重启python

二、python操作Oracle数据库

需要注意的是:当配置好所有的东西之后,其实用python操作Oracle和操作MySQL,在写代码上基本上大同小异。

因此在学习下面的代码之前,你可以参考我之前写的python操作MySQL数剧库的文章

1)python连接数据库的3种方式

连接语法:cx_Oracle.connect(‘username/password@host/监听’)

host代表你的Oracle服务器所在的地址,因为我的Oracle服务器就安装在本机上,因此我这里可以写localhost,我可以写主机名DESKTOP-V4LKB10,我还可以写主机IP

① 用户名、密码和监听写在一起

import cx_Oracle

db = cx_Oracle.connect('scott/a123456@DESKTOP-V4LKB10:1521/orcl')

② 用户名、密码和监听分开写

import cx_Oracle

db = cx_Oracle.connect("scott","a123456","192.168.2.1:1521/orcl")

③ 配置监听并连接

import cx_Oracle

moniter = cx_Oracle.makedsn('192.168.2.1',1521,'orcl')

db = cx_Oracle.connect('scott','a123456',moniter)

2)查询数据…查

① fetchone():一次获取一条记录

import cx_Oracle

# 注意:一定要加下面这两行代码,负责会中文乱码;

import os

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

db = cx_Oracle.connect("scott","a123456","192.168.2.1:1521/orcl")

cursor = db.cursor()

cursor.execute('select count(*) from emp1')

aa = cursor.fetchone()

print(aa)

cursor.execute('select ename,deptno,sal from emp1')

for i in range(aa[0]):

a,b,c = cursor.fetchone()

d = "我的名字叫{},所在部门是{},工资是{}美元".format(a,b,c)

display(d)

db.close()

截取部分结果如下:

e6bdf8ad571d

② fetchall():一次获取所有记录

import cx_Oracle

# 注意:一定要加下面这两行代码,负责会中文乱码;

import os

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

db = cx_Oracle.connect("scott","a123456","192.168.2.1:1521/orcl")

cursor = db.cursor()

cursor.execute('select ename,deptno,sal from emp1')

aa = cursor.fetchall()

# print(aa)

for a,b,c in aa:

d = "我的名字叫{},所在部门是{},工资是{}美元".format(a,b,c)

display(d)

db.close()

截取部分结果如下:

e6bdf8ad571d

③ 使用pandas中的read_sql()方法,将提取到的数据直接转化为DataFrame进行操作

import cx_Oracle

import pandas as pd

import os

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

db = cx_Oracle.connect("scott","a123456","192.168.2.1:1521/orcl")

cursor = db.cursor()

df1 = pd.read_sql("select * from emp where deptno=20",db)

display(df1)

df2 = pd.read_sql("select * from emp where deptno=30",db)

display(df2)

结果如下:

e6bdf8ad571d

注意:由于其他操作和python操作MySQL类似

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值