描述
某些环境下, 需要编写脚本实现自动化运维. 比如 自动收集统计信息, 一般是用操作系统的定时任务, 还不需要账号密码, 很方便.
本次教程为 python 通过 cx_Oralce 来调用存储过程, 并指定部分参数
环境
cx_Oracle >= 8.2
python >= 3.6
Oracle 本次环境为 19c
使用python登录oracle可以参考如下语句
代码语言:python代码运行次数:0复制import cx_Oracle
conn = cx_Oracle.connect('username', 'passowrd', "127.0.0.1/servicename",encoding="UTF-8")
cursor = conn.cursor()
方法1
把调用存储过程的命令当作普通SQL
代码语言:python代码运行次数:0复制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=[]
详情可以看官网
代码语言:python代码运行次数:0复制cursor.callproc('dbms_stats.gather_table_stats',keyword_parameters={'ownname':'username','tabname':'tablename'})