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中用于返回绝对值的abs()方法
May 14 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
python实现石头剪刀布小游戏
Jan 20 Python
使用python实现mqtt的发布和订阅
May 05 Python
python实现大文本文件分割
Jul 22 Python
基于python中__add__函数的用法
Nov 25 Python
django API 中接口的互相调用实例
Apr 01 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 Python
用python修改excel表某一列内容的操作方法
Jun 11 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自动给网址加上链接的方法
2015/06/02 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python CSV模块使用实例
2015/04/09 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
详解Python是如何实现issubclass的
2019/07/24 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
解决pip install psycopg2出错问题
2020/07/09 Python
python中的django是做什么的
2020/07/31 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
环境保护建议书
2014/08/26 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
学生逃课检讨书
2015/02/17 职场文书
工资证明范本
2015/06/12 职场文书
员工手册董事长致辞
2015/07/29 职场文书
导游词之临安白水涧
2019/11/05 职场文书
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python