甲VB 6程序正在處理的記錄和在臨時表中插入,則這些記錄是從該臨時表來實際的表移動時實際作業之前的Oracle並行查詢返回完成
connection.Execute "INSERT INTO MAIN_TABLE SELECT * FROM TEMP_TABLE"
臨時表隨後當記錄移動時截斷
connection.Execute "TRUNCATE TABLE TEMP_TABLE"
這是工作正常,直到我使用PARALLEL提示INSERT查詢。我收到此錯誤的TRUNCATE
ORA-00054:資源忙,並與指定NOWAIT或超時 收購過期
它看起來對我說,在完成工作之前,並行查詢返回和truncate命令發出造成鎖定。
我檢查瞭如下插入的記錄數,發現它比記錄臨時表
connection.Execute "INSERT /*+ PARALLEL */ INTO MAIN_TABLE SELECT * FROM TEMP_TABLE", recordsAffected
數量遠不如有沒有辦法等待INSERT完成?
什麼是您的連接字符串?你能指定更長的超時時間嗎? – dbmitch
做一個'Delete'而不是'Truncate'。但如果這只是一個臨時表,爲什麼你需要刪除呢? '在提交{刪除| PRESERVE} ROWS'將在每次提交|後清空表格會話。 – topshot
@dbmitch它不是關於TIMEOUT,而是connection.Execute返回,這會導致下一個查詢在第一個查詢被執行時仍然處於執行狀態 – bjan