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中的CURL PycURL使用例子
Jun 01 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
Python用GET方法上传文件
Mar 10 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
python numpy存取文件的方式
Apr 01 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
Python log模块logging记录打印用法解析
Jan 20 Python
关于Tensorflow分布式并行策略
Feb 03 Python
django 模型字段设置默认值代码
Jul 15 Python
详解Python 中的容器 collections
Aug 17 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-fpm 参数的深入理解
2013/06/03 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
Django实现发送邮件功能
2019/07/18 Python
python实现根据文件格式分类
2019/10/31 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
SQL注入攻击的种类有哪些
2013/12/30 面试题
大专毕业生简历的自我评价
2013/10/20 职场文书
大学教师年终总结的自我评价
2013/10/29 职场文书
财务工作个人总结
2015/02/27 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书