[cx-oracle-users] Cursor_InternalExecute invoking did not return
Brought to you by:
atuining
From: <jos...@si...> - 2017-03-02 08:26:27
|
Hi folks, Need you help. I wrote a python script to create several tables which select huge data from other tables in different python threads. I ran the script several times and it always turn out to unable to complete. So i ran gdb to check what the script was doing. The function stack show the Cursor_InternalExecute invoking did not return. I can't fix it then I see you help. The python code is like this: def split_credit(user_name, region_code): with CDB(zc_dbUser, zc_dbPasswd, zc_dbCon) as db: #thread's own cx_Oracle.Connection credittable = "XXXX_XXXXX_08{0}".format(region_code) creditsql = """CREATE TABLE XX.XX_XXXXX_08{0} tablespace {1} AS SELECT .....""" db.tabledrop(user_name, credittable) db.dosql(creditsql) time.sleep(1) workers = [] for i in range(0, 10): region_code = "5"+str(i) workerCredit= threading.Thread(target=split_credit, name="credit_"+region_code, args=(zc_dbUser, region_code)) workers.append(workerCredit) workerCredit.start() |