Процедура выполняется внутри SQL Developer, но не внутри скрипта - PullRequest
0 голосов
/ 27 сентября 2011

У меня была процедура, которая не работала.Если я попытался запустить: "BEGIN proc_name; END;"в SQL Developer или через скрипт у меня была та же ошибка.

Я исправил процедуру, и теперь, когда я запускаю ту же команду в 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 )
...

Я получаю ту же ошибку, что и до исправления процедуры.Ты хоть представляешь, что происходит?

PS: Это скрипт на python, использующий cx_Oracle, а я использую Oracle 10g.

1 Ответ

0 голосов
/ 27 сентября 2011

Попробуйте использовать на курсоре метод callproc () или callfunc () вместо execute (). Они не совсем совместимы с API Py DB, но должны выполнять работу для cx_Oracle ...

...