如何使用cx_Oracle和Python执行存储在.sql文件中的PL / SQL代码

问题描述 投票:0回答:1

我的要求是使用python执行存储在多个.sql文件中的PL / SQL代码。

我的假设是“ curs.execute(sql_command)”可以工作,但问题是我必须将输入参数也传递给过程。

[请让我知道如何使用python执行存储在.sql文件中的存储过程,所有存储过程也存储在单独的文件中,即每个文件仅包含一个存储过程。

python database-connection cx-oracle
1个回答
0
投票

如果每个存储过程都存储在单独的.sql文件中,则非常简单:

sql = open(fileName).read()
connection = cx_Oracle.connect("user/password@dsn")
cursor = connection.cursor()
cursor.execute(sql)

但是请注意,如果文件中存储的SQL包含尾部斜杠(/),则需要先将其删除。同样,例如,如果存储在文件中的SQL不是存储过程,而是创建表语句,则需要除去结尾的分号(;)。

如果需要调用存储过程,可以按照以下步骤进行:

cursor.callproc("TheProcedureName", (arg1, arg2, arg3))
© www.soinside.com 2019 - 2024. All rights reserved.