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框架Flask中使用百度云存储BCS实例
Feb 08 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
钉钉群自定义机器人消息Python封装的实例
Feb 20 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
Python使用matplotlib 画矩形的三种方式分析
Oct 31 Python
django框架auth模块用法实例详解
Dec 10 Python
python 消除 futureWarning问题的解决
Dec 25 Python
python如何编写win程序
Jun 08 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
让文件路径提取变得更简单的Python Path库
May 27 Python
Python自动化之批量处理工作簿和工作表
Jun 03 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+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
js实现点击生成随机div
2020/01/16 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
Python中Random和Math模块学习笔记
2015/05/18 Python
python对excel文档去重及求和的实例
2018/04/18 Python
Python并行分布式框架Celery详解
2018/10/15 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
个人售房合同协议书
2016/03/21 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
2022年显卡天梯图(6月更新)
2022/06/17 数码科技
python中使用redis用法详解
2022/12/24 Redis