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

0 投票
1 回答
832 浏览
提问于 2025-04-17 03:12

我之前有一个过程(程序)不工作。如果我在SQL Developer里或者通过脚本运行“BEGIN proc_name; END;”这条命令,都会出现同样的错误。

我已经修复了这个过程,现在在SQL Developer里运行同样的命令没问题,但脚本却返回了错误。

当我尝试:

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

我收到的错误是DatabaseError: ORA-00900: 无效的SQL语句,但这可能是因为这个原因:在PL/SQL Developer中执行过程的问题,我对此并不太担心。

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

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

我又得到了之前修复过程时的同样错误。你知道发生了什么事吗?

附注:这是一个使用cx_Oracle的Python脚本,我用的是Oracle 10g。

1 个回答

0

试着用 callproc() 或 callfunc() 这个方法来操作游标,而不是用 execute()。虽然它们和 Python 数据库 API 不是完全兼容,但在 cx_Oracle 中应该能正常工作...

撰写回答