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的正则表达式re模块的常用方法
Mar 09 Python
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 Python
Python实现的个人所得税计算器示例
Jun 01 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
详解python安装matplotlib库三种失败情况
Jul 28 Python
python实现图片九宫格分割的示例
Apr 25 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
Python列表的索引与切片
Apr 07 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
PHP静态新闻列表自动生成代码
2007/06/14 PHP
php中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
微信支付开发告警通知实例
2016/07/12 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
python利用opencv实现颜色检测
2021/02/23 Python
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
认识深刻的检讨书
2014/02/16 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
工作检讨书怎么写
2015/01/23 职场文书
六一儿童节开幕词
2015/01/29 职场文书
红色故事汇观后感
2015/06/18 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
小学运动会开幕词
2016/03/04 职场文书
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android