Python使用cx_Oracle调用Oracle存储过程的方法示例


Posted in Python onOctober 07, 2017

本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下:

这里主要测试在Python中通过cx_Oracle调用PL/SQL。

首先,在数据库端创建简单的存储过程。

create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is
begin
 o_msg := i_user ||', Good Morning!';
end;

然后,开始在Python命令行中进行存储过程调用。

import cx_Oracle as cx
conn = cx.connect('database connecting string')
cursor = conn.cursor()
#声明变量
user = 'Nick' #plsql入参
msg = cursor.var(cx_Oracle.STRING) #plsql出参
#调用存储过程
cursor.callproc('test_msg', [user, msg]) #['Nick', 'Nick, Good Morning!']
#打印返回值
print msg #<cx_Oracle.STRING with value 'Nick, Good Morning!'>
print msg.getvalue() #Nick, Good Morning!
#资源关闭
cursor.close()
conn.close()

延伸阅读:

存储过程、cx_Oracle、Python的对象类型之间存在转换关系。具体如下:

Oracle cx_Oracle Python
VARCHAR2, NVARCHAR2, LONG cx_Oracle.STRING str
CHAR cx_Oracle.FIXED_CHAR str
NUMBER cx_Oracle.NUMBER int
FLOAT cx_Oracle.NUMBER float
DATE cx_Oracle.DATETIME datetime.datetime
TIMESTAMP cx_Oracle.TIMESTAMP datetime.datetime
CLOB cx_Oracle.CLOB cx_Oracle.LOB
BLOB cx_Oracle.BLOB cx_Oracle.LOB

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
Python每天必学之bytes字节
Jan 28 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
Python错误: SyntaxError: Non-ASCII character解决办法
Jun 08 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
python实现移位加密和解密
Mar 22 Python
numpy下的flatten()函数用法详解
May 27 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
Django视图扩展类知识点详解
Oct 25 Python
让你的Python代码实现类型提示功能
Nov 19 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
Mar 06 Python
深入理解Django中内置的用户认证
Oct 06 #Python
Python3学习笔记之列表方法示例详解
Oct 06 #Python
python获取外网IP并发邮件的实现方法
Oct 01 #Python
Python之自动获取公网IP的实例讲解
Oct 01 #Python
使用paramiko远程执行命令、下发文件的实例
Oct 01 #Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
Oct 01 #Python
win10下Python3.6安装、配置以及pip安装包教程
Oct 01 #Python
You might like
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
$.format,jquery.format 使用说明
2011/07/13 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
Django models.py应用实现过程详解
2019/07/29 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
机械电子工程专业推荐信范文
2013/11/20 职场文书
新教师个人工作总结
2015/02/06 职场文书
暑假生活随笔
2015/08/15 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript