1
我有一個現有的系統,其中一個Oracle數據庫由一系列Python文件填充元數據。大約有500人,而且目前一次運行它們的方法大約需要一個小時才能完成。Pyodbc可能的線程問題
爲了減少這種運行時,我已經試過穿的單個文件,在同時運行它們,但我已經得到一個錯誤
pyodbc.IntegrityError: ('23000', '[23000] [Oracle][ODBC][Ora]ORA-00001: unique constraint (DB.PK_TABLE_NAME) violated\n (1) (SQLExecDirectW)')
與回溯到以下電話:
File "C:\file.py", line 295, in ExecuteSql
cursor.execute(Sql)
任何人都可以爲我擺脫任何光線嗎?如果引發錯誤的文件單獨運行,這似乎不會發生,這導致我懷疑這是兩個文件試圖一次寫入數據庫的訪問問題。我希望事實並非如此,因爲這可能會完全否決這種方法。
您似乎遇到標識符衝突。你的INSERT包裝在交易中嗎?你是否在多個線程中共享單個連接或遊標? – FlipperPA
@FlipperPA每個線程都有自己的連接。它們沒有被包裹在交易中(它是一種非常黑客行爲的方法,我試圖改進一點點) – Strongo