恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

python--连接oracle数据库

  • 首页
  • 资讯中心
  • /
  • python--连接oracle数据库

相关资讯

Docker 部署 Jenkins 完整指南(含升级、迁移、避坑) 2026/8/4 6:30:02
Jenkins 迁移 + 版本升级 完整实操方案 2026/8/4 6:29:44
terminator:超级终端 2026/8/2 16:57:39

最新资讯

Linux邮件服务器搭建指南:Postfix+Dovecot从零到实战
跨团队WebAssembly代码共享工程化指南:从编译到发布的完整实践
Linux下vsftpd服务器安全搭建与实战配置指南
设备租出去了,账还在 Excel 里:我们给工程机械中小企业做系统,从登录页就开始改
Linux 安全运维必知:pwunconv 命令详解,关闭影子密码机制
企业云盘 Kubernetes 私有化部署:StorageClass 与 CSI 驱动选型清单

今日推荐

League Akari:重塑英雄联盟游戏体验的智能工具集
一边降查重,一边消 AI 痕迹!工具到底该怎么搭配?
Go 数据库连接池与协程抢占——防止慢查询拉垮核心 Goroutine 调度

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

python--连接oracle数据库

发布时间:2026/8/4 6:33:28
python--连接oracle数据库 python--连接oracle数据库前言一、安装cx_Oracle二、导入库三、数据库操作实例3.1 连接3.2数据库查询3.3数据库插入3.4 实例从某网站上面爬取彩票号码四、异常4.1、运行时出现连接数据库失败:DatabaseError:DPI-1047解决连接失败问题1、查看Oracle的版本号2、进入官网下载对应Oracle版本3.下载cx_Oracle包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook4.在使用python连接时需要注意以下点前言在进行数据库连接之前一般都需要导入依赖的库通过专门的库去处理对应的数据库连接所以没安装对应的处理库的话需要先进行安装、再导入导入后即可正常使用。一、安装cx_Oraclecx_Oracle:python链接oracle的驱动包这个需要自己安装https://pypi.python.org/pypi/cx_Oracle/5.3在这个网址中下载对应的驱动下载驱动的时候一定要选好对应的版本我的python是3.6的32位版本所以在下载驱动的时候也要选择对应的版本我选择的版本是cx_Oracle-5.3-11g.win32-py3.6.exe (md5)下载后直接安装运行就行了他会有一个自检如果没有通过就说明你的驱动版本没有下载对。在刚才下载好的oracle客户端版本中找到下面三个文件oci.dll、oraocci11.dll、oraociei11.dll将这几个dll文件复制到Python\Python36-32\Lib\site-packages文件夹中。二、导入库代码如下示例importcx_Oracle三、数据库操作实例3.1 连接importcx_Oracle conncx_Oracle.connect(xzt/xztlocalhost/testdb)#这里的顺序是用户名/密码oracleserver的ip地址/数据库名字cursorconn.cursor()print(连接数据库成功)sqlselect * from studentallcursor.execute(sql)print(all.fetchall())3.2数据库查询importcx_Oracle conncx_Oracle.connect(xzt/xztlocalhost/testdb)cursorconn.cursor()cursor.execute(SELECT * FROM STUDENT_TB)rowscursor.fetchall()#得到所有数据集forrowinrows:print(%d, %s, %s, %s%(row[0],row[1],row[2],row[3]))#python3以上版本中print()要加括号用了print(Number of rows returned: %d%cursor.rowcount)cursor.execute(SELECT * FROM STUDENT_TB)while(True):rowcursor.fetchone()#逐行得到数据集ifrowNone:breakprint(%d, %s, %s, %s%(row[0],row[1],row[2],row[3]))print(Number of rows returned: %d%cursor.rowcount)cursor.close()conn.close()3.3数据库插入importcx_Oracle conncx_Oracle.connect(xzp/xzplocalhost/testdb)cursorconn.cursor()cursor.execute(CREATE TABLE INSERTTEST(ID INT, C1 VARCHAR(50), C2 VARCHAR(50), C3 VARCHAR(50)))cursor.execute(INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(1213412, asdfa, ewewe, sfjgsfg))cursor.execute(INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(12341, ashdfh, shhsdfh, sghs))cursor.execute(INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(123451235, werwerw, asdfaf, awew))conn.commit()#这里一定要commit才行要不然数据是不会插入的cursor.close()conn.close()3.4 实例从某网站上面爬取彩票号码importreimporturllibimportcx_Oracleimporturllib.requestdefgetHtml(url):pageurllib.request.urlopen(url)htmlpage.read()returnhtmldefgetNumber(html):regrli classball_red(\d{2})/lireg2rli classball_blue(\d{2})/liregqnumberr第 font classcfont2strong(\d*)/strong/fontnumberre.compile(reg)numberbluere.compile(reg2)qnumberre.compile(regqnumber)numberlistre.findall(number,html.decode(gbk))numberbluere.findall(numberblue,html.decode(gbk))qnumre.findall(qnumber,html.decode(gbk))fornumberinnumberblue:numberlist.append(number)forninqnum:numberlist.append(n)print(numberlist)returnnumberlist#将查询到的号码入库defRecodeToOracle(list):conncx_Oracle.connect(xzp/xzplocalhost/testdb.domain)curconn.cursor()sqlINSERT INTO SSQ (REDNUM1,REDNUM2,REDNUM3,REDNUM4,REDNUM5,REDNUM6,BLUENUM,QNUMBER) VALUES (%s,%s,%s,%s,%s,%s,%s,%s)%(list[0],list[1],list[2],list[3],list[4],list[5],list[6],list[7])cur.execute(sql)cur.close()conn.commit()#这里一定要提交要不然是没有办法将数据入库的conn.close()#记得要关闭会话defGeturl(html):regr上一期a href(.*) target_blankurlre.compile(reg)urllistre.findall(url,html.decode(gbk))iflen(urllist)!0:print(urllist[0])ifurllist[0].index(http:)0:urllist[0]http:urllist[0]htmlbeforegetHtml(urllist[0])# print(htmlbefore)numberlistgetNumber(htmlbefore)print(len(numberlist))RecodeToOracle(numberlist)print(numberlist)Geturl(htmlbefore)else:returnstr1网站地址html1getHtml(str1)RecodeToOracle(getNumber(html1))Geturl(html1)四、异常4.1、运行时出现连接数据库失败:DatabaseError:DPI-1047解决连接失败问题1、查看Oracle的版本号#linux下查询 sqlplus / as sysdba select * from v$version;2、进入官网下载对应Oracle版本https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html将下载的包解压添加到环境变量3.下载cx_Oracle包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhookctrlf 搜索cx_Oracle进入选择匹配python版本的包这里我的python版本是3.6 64位cmd进入下载cx_Oracle-8.1.0-cp36-cp36m-win_amd64.whl的目录以下是我本地目录应修改成你自己的下载目录安装最新下载的包pip install cx_Oracle-8.1.0-cp36-cp36m-win_amd64.whl打开oracle版本的解压包进入解压后的目录C:\work\instantclient-basic-windows.x64-12.2.0.1.0\instantclient_12_2换成你本地的目录这里是我本地的把所有的.dll文件全部拷贝到python的根目录拷贝到目录如下4.在使用python连接时需要注意以下点1、需要下载已安装的oracle数据库对应的版本2、需要下载与python版本对应的cx_Oracle包3、需要把oracle版本的ddl文件放置python安装根目录下

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号