2013-05-14 66 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. 放下旧桌子。