2013-05-14 65 views
2

我可以通過SAS ODBC連接鎖定Oracle數據庫中的所有訪問(包括基於Oracle的查詢)表嗎?通過SAS將新表導入Oracle數據庫,寫入時鎖定表

我目前正在SAS中運行一個腳本,它通過ODBC SAS庫刪除並替換Oracle數據庫中的表。

我的問題是有自動運行的例程(運行查詢),它獨立於此腳本運行,我想拒絕它們在更新時訪問此特定表,以確保它們不會在不完整的數據集。

+1

執行ddl命令'lock table my_table in exclusive mode'。這將防止表上的dml操作。記住用commit/rollback結束事務來釋放鎖。 – haki 2013-05-14 12:49:36

回答

2

如果該表已被刪除,則無法將其標記爲已鎖定。無論如何,即使是獨佔表鎖也不會阻止表被讀取。

一個更好的辦法很可能是該表通過同義詞訪問,並且不是放棄它並重新創建它,這樣做:

  1. 創建新表並加載它。
  2. 將synoynym重新定義爲指向新表。
  3. 等待幾分鐘
  4. 放下舊桌子。