我的要求是使用python执行存储在多个.sql文件中的PL / SQL代码。
我的假设是“ curs.execute(sql_command)”可以工作,但问题是我必须将输入参数也传递给过程。
[请让我知道如何使用python执行存储在.sql文件中的存储过程,所有存储过程也存储在单独的文件中,即每个文件仅包含一个存储过程。
如果每个存储过程都存储在单独的.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))