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 相关文章推荐
Djang中静态文件配置方法
Jul 30 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
Django中URL的参数传递的实现
Aug 04 Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 Python
python随机模块random的22种函数(小结)
May 15 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
python实现一次性封装多条sql语句(begin end)
Jun 06 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
python类共享变量操作
Sep 03 Python
Python中rapidjson参数校验实现
Jul 25 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
深入extjs与php参数交互的详解
2013/06/25 PHP
preg_match_all使用心得分享
2014/01/31 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
jquery模拟按下回车实现代码
2011/09/20 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
Python的垃圾回收机制详解
2019/08/28 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
房地产融资计划书
2014/01/10 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
建房协议书
2014/04/11 职场文书
三孔导游词
2015/02/05 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL