2011-09-27 61 views
0

我有一个不起作用的过程。 如果我试图运行:“BEGIN proc_name; END;”在SQL Developer或通过脚本我有同样的错误。过程在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。

+0

第一个和第二个代码示例是一样的吗? – Constantinius

+0

对不起。改变。 –

回答

0

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