【问题标题】:New table into Oracle db via SAS, lock table while writing通过 SAS 将新表写入 Oracle db,写入时锁定表
【发布时间】:2013-05-14 10:55:54
【问题描述】:

我能否通过 SAS ODBC 连接锁定 Oracle 数据库中的所有表访问(包括基于 Oracle 的查询)?

我目前正在 SAS 中运行一个脚本,该脚本通过 ODBC SAS 库删除和替换 Oracle db 中的表。

我的问题是,有一些独立于该脚本运行的自动例程(运行查询),我想拒绝他们在更新此特定表时访问它,以确保他们不会对不完整的表运行查询数据集。

【问题讨论】:

  • 执行 ddl 命令lock table my_table in exclusive mode。这将阻止对表进行 dml 操作。请记住以提交/回滚结束事务以释放锁。

标签: oracle locking odbc sas


【解决方案1】:

如果表已被删除,则无法将其标记为已锁定。在任何情况下,即使是排他表锁也不会阻止读取该表。

更好的方法可能是通过同义词访问表,而不是删除它并重新创建它,这样做:

  1. 创建新表并加载它。
  2. 重新定义同义词以指向新表。
  3. 等待几分钟
  4. 放下旧桌子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多