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实现带验证码网站的自动登陆实现代码
Jan 12 Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 Python
python字符串过滤性能比较5种方法
Jun 22 Python
python批量替换页眉页脚实例代码
Jan 22 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
wxpython绘制圆角窗体
Nov 18 Python
Python 实现try重新执行
Dec 21 Python
Tensorflow 实现释放内存
Feb 03 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
main.php
2006/12/09 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
javascript实现数独解法
2015/03/14 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
angular十大常见问题
2017/03/07 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
vue中的使用token的方法示例
2020/03/10 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
朴素贝叶斯算法的python实现方法
2014/11/18 Python
分析python请求数据
2018/08/19 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
python global关键字的用法详解
2019/09/05 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
Python装饰器结合递归原理解析
2020/07/02 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
台湾最大网路书店:博客来
2018/03/18 全球购物
大学校务公开实施方案
2014/03/31 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
生产实习心得体会范文
2016/01/22 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL