0

PyODBC を Oracle の proc で動作させるのに問題があります。

以下はコードと出力です

デシベル = pyodbc.connect('DSN=TEST;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検索を行いましたが、私を助けるものは何もありません.

どんなことでも大歓迎です。

4

1 に答える 1

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」を作成すると、
于 2013-05-29T02:27:02.187 に答える