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 Web框架Pylons中使用MongoDB的例子
Dec 03 Python
Python实现端口复用实例代码
Jul 03 Python
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 Python
python使用pyqt写带界面工具的示例代码
Oct 23 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
Aug 06 Python
关于Python-faker的函数效果一览
Nov 28 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
详解Python实现进度条的4种方式
Jan 15 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
Python命令行参数定义及需要注意的地方
Nov 30 Python
python 如何执行控制台命令与操作剪切板
May 20 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
php中转义mysql语句的实现代码
2011/06/24 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
weex slider实现滑动底部导航功能
2017/08/28 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
Python 图片处理库exifread详解
2021/02/25 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
亲子拓展活动方案
2014/02/20 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
室内设计专业自荐信
2014/05/31 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
英语教师个人总结
2015/02/09 职场文书
交通事故案件代理词
2015/05/23 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python