cx_oracle 调用存储过程并指定部分参数

描述

某些环境下, 需要编写脚本实现自动化运维. 比如 自动收集统计信息, 一般是用操作系统的定时任务, 还不需要账号密码, 很方便.

本次教程为 python 通过 cx_Oralce 来调用存储过程, 并指定部分参数

环境

cx_Oracle >= 8.2

python >= 3.6

Oracle 本次环境为 19c

使用python登录oracle可以参考如下语句

import cx_Oracle
conn = cx_Oracle.connect('username', 'passowrd', "127.0.0.1/servicename",encoding="UTF-8")
cursor = conn.cursor()

方法1

把调用存储过程的命令当作普通SQL

sql = '''begin dbms_stats.gather_table_stats(ownname => 'username', tabname => 'tablename');end;'''
cursor.execute(sql)

方法2

使用官方提供的callproc方法,语法 Cursor.callproc(name, parameters=[], keyword_parameters={})

注: 小于 8.2的版本 需要改为keywordParameters

指定参数 keyword_parameters={}

位置参数 parameters=[]

详情可以看官网

cursor.callproc('dbms_stats.gather_table_stats',keyword_parameters={'ownname':'username','tabname':'tablename'})

相关文章

文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符...
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远...
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语...
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseErr...
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Or...
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点...