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

2022-07-19 17:31:05 浏览数 (1)

描述

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

本次教程为 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'})

0 人点赞