【python】python连接Oracle数据库
python连接Oracle数据库
查看Oracle版本
select * from v$version
下载对应版本的InstantClient
InstantClient
1.解压InstantClient
2.环境变量
3.将其解压目录下的oci.dll、oraocieixx.dll、oraoccixx.dll文件复制到python安装目录的Lib/site-packages文件夹下
安装cx_Oracle驱动包
pip insatll cx_Oracle
Python与Oracle交互操作
#连接 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)
查询一条记录
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()
获取所有记录
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()
转换为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)
解决中文乱码问题
方法一 C:\Users\AA>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
方法二 import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
参考
「其他文章」
- 分享自己平时使用的socket多客户端通信的代码技术点和软件使用
- iNeuOS工业互联网操作系统,增加2154个视图建模(WEB组态)行业矢量图元、大屏背景及相关图元
- 多台云服务器的 Kubernetes 集群搭建
- Elasticsearch学习系列四(聚合搜索)
- 关于swiper插件在vue2的使用
- 使用 Abp.Zero 搭建第三方登录模块(一):原理篇
- LVGL库入门教程 - 颜色和图像
- 物联网?快来看 Arduino 上云啦
- SpringBoot JWT Redis 开源知识社区系统
- CVPR2022 | 可精简域适应
- Spring框架系列(3) - 深入浅出Spring核心之控制反转(IOC)
- 面试突击59:一个表中可以有多个自增列吗?
- CVPR2022 | 弱监督多标签分类中的损失问题
- JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?一文带你厘清个中曲直,给你个选择SpringDataJPA的...
- Spring Security:用户和Spring应用之间的安全屏障
- Mybatisi和Spring整合源码分析
- 前端学习 linux —— 第一篇
- call apply bind的作用及区别? 应用场景?
- Bika LIMS 开源LIMS集——实验室检验流程概述及主页、面板
- 软件项目管理 7.5.项目进度模型(SPSP)