过程在SQL Developer中执行,但不在脚本内部执行

时间:2011-09-27 14:48:04

标签: python oracle stored-procedures oracle10g

我有一个无效的程序。 如果我试图运行:“BEGIN proc_name; END;”在SQL Developer中或通过脚本我遇到了同样的错误。

我已经修复了这个过程,现在当我在SQL Developer中运行相同的命令时,没关系,但脚本会返回错误。

当我尝试:

...
sql = """EXEC proc_name"""
con = connection.cursor()
con.execute( sql )
...

我得到DatabaseError:ORA-00900:SQL语句无效,但可能是因为:Problem with execute procedure in PL/SQL Developer而且我并不是真的担心它。

当我尝试时,真正令我好奇的是:

...
sql = """BEGIN proc_name;END;"""
con = connection.cursor()
con.execute( sql )
...

我在修复程序之前遇到了同样的错误。 你知道发生了什么吗?

PS:这是一个使用cx_Oracle的python脚本,我正在使用Oracle 10g。

1 个答案:

答案 0 :(得分:0)

尝试在游标上使用callproc()或callfunc()方法,而不是execute()。它们不完全兼容Py DB API,但应该为cx_Oracle ...

完成工作