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获取文件ssdeep值的方法
Oct 05 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 Python
python调用staf自动化框架的方法
Dec 26 Python
pygame实现非图片按钮效果
Oct 29 Python
pytorch GAN生成对抗网络实例
Jan 10 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
Pygame的程序开始示例代码
May 07 Python
Python排序函数的使用方法详解
Dec 11 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
Jun 11 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 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来处理多个提交任务
2006/10/09 PHP
php jsonp单引号转义
2014/11/23 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
js实现表格筛选功能
2017/01/18 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
python中Apriori算法实现讲解
2017/12/10 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
Python pandas常用函数详解
2018/02/07 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
python opencv读mp4视频的实例
2018/12/07 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
Android实现图片九宫格
2022/06/28 Java/Android