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生成随机密码
Mar 10 Python
Python中super关键字用法实例分析
May 28 Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 Python
老生常谈python函数参数的区别(必看篇)
May 29 Python
Python微信库:itchat的用法详解
Aug 14 Python
关于Python数据结构中字典的心得
Dec 04 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
使用django自带的user做外键的方法
Nov 30 Python
使用numpy nonzero 找出非0元素
May 14 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动态生成JavaScript代码
2009/03/09 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
对python中UDP,socket的使用详解
2019/08/22 Python
Python @property装饰器原理解析
2020/01/22 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
python中如何进行连乘计算
2020/05/28 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
大学生求职信范文应怎么写
2014/01/01 职场文书
领导班子整改方案
2014/10/25 职场文书
承诺书范本大全
2015/05/04 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
高中化学教学反思
2016/02/22 职场文书
python 模块重载的五种方法
2021/04/24 Python
新手入门Mysql--sql执行过程
2021/06/20 MySQL
Python的三个重要函数详解
2022/01/18 Python