2013-05-29 3 views
0

У меня возникли проблемы с тем, чтобы PyODBC работал с proc в Oracle.Oracle Stored Procedure и PyODBC

Ниже приведен код и выход

дБ = pyodbc.connect ('DSN = ТЕСТ; UID = cantsay; PWD = cantsay')

print('-' * 20) 
try: 
    c = db.cursor() 
    rs = c.execute("select * from v$version where banner like 'Oracle%'") 
    for txt in c.fetchall(): 
     print('%s' % (txt[0])) 
    test = "" 
    row = c.execute("call DKB_test.TESTPROC('7894','789465','789465')").fetchall() 
finally: 
    db.close() 

ВЫХОД

> C:\Documents and Settings\dex\Desktop>orctest.py 
> -------------------- Oracle Database 10g Release 10.2.0.4.0 - 64bit Production Traceback (most recent call last): File "C:\Documents and 
> Settings\dex\Desktop\orctest.py", line 31, in <module> 
>  row = c.execute("{call DKB_test.TESTPROC(12354,78946,123 4)}").fetchall() 
> pyodbc.Error: ('HY000', "[HY000] [Oracle][ODBC][Ora]ORA-06550: line 1, 
> column 7: \nPLS-00221: 'TESTPROC' is not a procedure 
> or is undefined\nORA- 06550: line 1, column 7:\nPL/SQL: Statement 
> ignored\n (6550) (SQLExecDirectW)") 

Но я вижу эту процедуру и кодирую ее в C#, она работает, но этот проект, который я делаю, требует python.

Я сделал несколько поисков Google, и ничего не приходит, что помогает мне.

Любая вещь будет принята с благодарностью.

ответ

0

Не на 100% уверен, имя процедуры: Get_SC_From_Comp_Ven_Job или GET_SC_FROM_COMP_VEN_JOB?

  1. проверить правильность или неправильное использование этого поля.
  2. проверьте имя с учетом регистра, если мы создадим процедуру Get_SC_From_Comp_Ven_Job, на самом деле это GET_SC_FROM_COMP_VEN_JOB. но если мы создадим процедуру «Get_SC_From_Comp_Ven_Job», то это
+0

Ну, я сделал изменения шапки, и теперь я получаю новую ошибку. pyodbc.Error: («HY000», «[HY000] [Oracle] [ODBC] [Ora] ORA-06550: строка 1, столбец 7: \ nPLS-00221:« ТЕСТ »не является процедурой или не определено \ nORA - 06550: строка 1, столбец 7: \ nPL/SQL: заявление игнорируется \ n (6550) (SQLExecDirectW) ") – thedemon

+0

@thedemon, по крайней мере, есть прогресс :-). что такое ТЕСТ? не смог найти его в вашем коде. – hylepo

+0

извините, это всего лишь общая процедура. Любые идеи о том, что еще я делаю неправильно? – thedemon

Смежные вопросы