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 相关文章推荐
pytyon 带有重复的全排列
Aug 13 Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
关于Python正则表达式 findall函数问题详解
Mar 22 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
学习python可以干什么
Feb 26 Python
python动态进度条的实现代码
Jul 03 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
Aug 12 Python
django 解决扩展自带User表遇到的问题
May 14 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 Python
Python内置包对JSON文件数据进行编码和解码
Apr 12 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使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
原生js生成图片验证码
2020/10/11 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
Python中使用中文的方法
2011/02/19 Python
Python实现单词拼写检查
2015/04/25 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
校园安全广播稿
2014/02/08 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers