【问题标题】:Procedure execute inside SQL Developer, but not inside a script过程在 SQL Developer 中执行,但不在脚本中
【发布时间】:2011-11-26 03:12:51
【问题描述】:

我的程序不起作用。 如果我尝试运行:“BEGIN proc_name; END;”在 SQL Developer 中或通过脚本我遇到了同样的错误。

我已经修复了该过程,现在当我在 SQL Developer 中运行相同的命令时,一切正常,但脚本返回错误。

当我尝试时:

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

我得到 DatabaseError: ORA-00900: invalid SQL statement,但可能是因为这个原因: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。

【问题讨论】:

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

标签: python oracle stored-procedures oracle10g


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-05-11
    • 1970-01-01
    • 2011-11-11
    • 2023-03-04
    • 2011-05-07
    • 2014-07-23
    • 2020-04-13
    • 2020-03-27
    • 2011-07-09
    相关资源
    最近更新 更多