cx_oracle主备服务器,怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作
怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作
发布时间:2021-03-17 16:32:34
来源:亿速云
阅读:67
作者:Leah
本篇文章为大家展示了怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1. 下载cx_Oracle
Python一个官方网站PyPI,上面有丰富的模块。cx_Oracle就可以在PyPI中下载。打开PyPI的网址https://pypi.python.org/pypi,在里面搜索cx_Oracle,即可找到该模块,其下载地址为http://cx-oracle.sourceforge.net/。当然也可以通过其它的途径下载。
下载之后就可以使用了。
2. 使用流程
简单的使用流程如下:
①.引用模块cx_Oracle
②.连接数据库
③.获取cursor
④.使用cursor进行各种操作
⑤.关闭cursor
⑥.关闭连接
下面是一个简单的例子:
cx_Oracle.connect("用户名 / 密码@ Oracle服务器IP / Oracle的SERVICE_NAME")
获得 Oracle的SERVICE_NAME:
su - oracle #切换至oracle用户
env | grep ORACLE #查询ORACLE的环境变量
ORACLE_SID=benguo # benguo就是SERVICE_NAMEimport cx_Oracle #引用模块cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g') #连接数据库
c=conn.cursor() #获取cursor
x=c.execute('select sysdate from dual') #使用cursor进行各种操作
x.fetchone()
c.close() #关闭cursor
conn.close() #关闭连接
例子:#coding:utf-8
import cx_Oracle
def main():
conn = cx_Oracle.connect("zebra/zebra@192.168.0.113/benguo")
cur =conn.cursor()
r= cur.execute("select * from userinfo")
print r.fetchone()
if __name__ == '__main__':
main()
3. 几种用法
Python对数据库的操作主要有2方面:一个是写数据,一个是读数据。这2个方面的实现可以通过SQL语句实现,也可以通过存储过程实现。所以cx_Oracle的主要用法有:
①. 执行SQL语句
②. 调用存储过程和函数。
4. 执行SQL语句
执行SQL语句很简单,从上面的例子就可以看出。使用cursor.execute即可执行。使用fetchone或fetchall即可将执行结果读出来。
下面一个例子是Insert语句,使用的变量绑定。import cx_Oracle
conn=cx_Oracle.connect('load/123456@loaclhost/ora11g')
c=conn.cursor()
x=c.execute('insert into demo(v) values(:1)',['nice'])
conn.commit();
c.close()
conn.close()
变量绑定和Oracle的动态SQL一样,都是冒号将占位符,即代码中的:1,对变量的复制就是传入一个List,即代码中的['nice']。有多少个变量,list中就应该对应多少个值,数目要一致,否则会报错。
执行之后,可以使用连接的一个方法connect.commit(),将事务提交。
5. 调用存储过程和方法
直接上代码:--存储过程代码:
CREATE OR REPLACE PROCEDURE P_DEMO(V1 IN VARCHAR2, V2 OUT VARCHAR2) IS
BEGIN
V2 := V1;
END;#Python代码:
import cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')
c=conn.cursor()
str1='nice'
str2=' '#需要有值,即len(str2)>=len(str1)
x=c.callproc('p_demo',[str1,str2])
print(str2)
c.close()
conn.close()
调用存储过程使用的是cursor.callproc方法。上面的存储过程中,一个变量的值是OUT型的,在Python中,对OUT型的变量赋值,主要该变量的长度不能小于存储过程中的。--函数代码:
CREATE OR REPLACE function F_DEMO(V1 VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN V1;
END;#Python代码:
import cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')
c=conn.cursor()
str1='nice'
str2=c.callfunc('f_demo',cx_Oracle.STRING,[str1])
print(str2)
c.close()
conn.close()
调用函数使用的方法是cursor.callfunc。这个与调用存储过程不同之处在于,它需要指定传输参数的类型。
上述内容就是怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
cx_oracle主备服务器,怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作相关推荐
- 在python中创建虚拟环境和Django对数据库的操作(一)
一怼:横州侧畔千帆过,漏出你这个小瘪三,我劝天公重抖擞,劈死你这个王八蛋(by.阅后即瞎) 先说笔者所使用的版本,笔者使用的是django1.8.4的版本,不同版本可能有不同请按照实际情况处理,本文只 ...
- Symantec Backup Exec 2014 备份Exchange 2013之二安装主备服务器
安装BE 2014的系统要求如下: 操作系统 不能在运行 Windows Server 2008/2012 的 Windows Server Core 安装选项的计算机上安Backup Exec 服务 ...
- python cx oracle 11g,怎么在python中使用cx_Oracle模块连接Oracle数据库
怎么在python中使用cx_Oracle模块连接Oracle数据库 发布时间:2021-03-29 18:08:05 来源:亿速云 阅读:65 作者:Leah 怎么在python中使用cx_Orac ...
- 服务器 系统顺利切换 报道,一种实现主备服务器切换的方法及系统
1.一种实现主备服务器切换的系统,其特征在于,至少包括网关,主交换机和备用交换机,与主交换机相连接的一个或一个以上主服务器,与备用交换机相连接的.与各主服务器分别完全镜像的一个或一个以上备用服务器: ...
- Python中通过cx_Oracle访问数据库遇到的问题总结
以下是Python中通过cx_Oracle操作数据库的过程中我所遇到的问题总结,感谢我们测试组的前辈朱勃给予的帮助最终解决了下列两个问题: 1)安装cx_Oracle会遇到的问题:在Windows下安 ...
- 图文:Linux-DNS主备服务器搭建(高可用)
DNS主服务器(master):192.168.127.147 从服务器(slave):192.168.127.148 1.首先在master和slave上安装DNS包: 2.编辑master上的DN ...
- python中的log模块笔记
日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日志输出中添 ...
- python中日志logging模块和异常捕获traceback模块的使用
python中日志logging模块和异常捕获traceback模块的使用 参考文章: (1)python中日志logging模块和异常捕获traceback模块的使用 (2)https://www. ...
- 使用python中的tkinter模块制作一个学习打卡小软件
学习任务打卡小软件---戈多Sensei 1.制定任务 2.完成任务 3.学习评估 最近为了给我的星星⭐写一个学习记录软件,学习了一下python中的tkinter模块,做了一个可视化打卡界面,此处为 ...
最新文章
- android linux 内核gpl,Android 内核分析
- 「敏捷开发」适合什么样的团队?
- python 必备模块和包_Python_异常和模块
- c++使用Vigenere加解密文本的算法(附完整源码)
- 微服务网关实现用户访问权限识别拦截
- php智能裁剪黑边,图片裁剪去除黑边
- 导入自己写的类,却被标红,原因及解决方法是?(Pycharm编辑器为例)
- python都有哪些包装_Python基础:21包装
- 广东 职称英语计算机,现在评职称英语和计算机都不用考了
- 求n的阶乘的算法框图_算法|从阶乘计算看递归算法
- 百变方块java代码_多牛百变方块
- 【贪心】LeetCode 55. Jump Game
- 锐捷网络linux如何认证上网,如何在Linux里面进行锐捷认证上网
- 最新手机号段归属地数据库(2018年4月)
- SPSS数据分析流程
- 高瓴张磊:从学渣到投资大佬,也曾多次犯错
- 自考《数据库系统原理》(3)之关系模式设计理论
- Hdu4747 Mex 递推
- golang的图片操作:缩放图片+合成图片
- c++string 加引号_Shell 引号嵌套
热门文章
- laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案)
- c++里解决“控制传输跳过的实例化”的方法
- torchvision学习之torchvision.datasets
- eclipse导入jar包的三种方法
- 程序猿们正在疯狂battle,看看究竟谁的算法更6
- Facebook广告账号主页创建时,其实还有这些小知识!
- 跨境电子商务独立站如何找到热门的利基市场
- 如何快速搭建一个属于自己的网站?
- java8 stream index_Java8 Stream基本使用
- CCF	2014-3-1 相反数