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实现的Kmeans++算法实例
Apr 26 Python
python中ConfigParse模块的用法
Sep 29 Python
python文件读写操作与linux shell变量命令交互执行的方法
Jan 14 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
详解pandas映射与数据转换
Jan 22 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
隐性调用php程序的方法
2015/06/13 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
Python中Random和Math模块学习笔记
2015/05/18 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
详解Python循环作用域与闭包
2019/03/21 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
python实现名片管理器的示例代码
2019/12/17 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
优秀求职自荐信怎样写
2013/12/18 职场文书
生产部统计员岗位职责
2014/01/05 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
环保建议书100字
2014/05/14 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
个人整改措施书面材料
2014/10/24 职场文书
师范生小学见习总结
2015/06/23 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
MongoDB数据库之添删改查
2022/04/26 MongoDB
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server