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

发布于 2024-12-06 15:33:17 字数 716 浏览 1 评论 0原文

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

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

当我尝试时:

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

我得到 DatabaseError: ORA-00900: invalid SQL statements,但可能是因为: PL/SQL Developer 中的执行过程出现问题,我并不真正担心它。

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

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

我得到了与修复程序之前相同的错误。 你知道发生了什么事吗?

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

I had a procedure that was not working.
If I tried to run: "BEGIN proc_name; END;" in SQL Developer or via script I had the same error.

I've fixed the procedure and now when I run that same command in SQL Developer, it's fine, but the script returns an error.

When I try:

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

I get DatabaseError: ORA-00900: invalid SQL statement, but probably is because of that: Problem with execute procedure in PL/SQL Developer and I'm not really worried about it.

What is really making me curious is when I try:

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

I get the same error that I had before fix the procedure.
Do you have any idea what is going on?

PS: This is a python script using cx_Oracle and I'm using Oracle 10g.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

失而复得 2024-12-13 15:33:17

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

Try using the callproc() or callfunc() method on the cursor, instead of execute(). They are not exactly Py DB API compatible, but should do the job for cx_Oracle...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文