Oracle 10g 上的独占表(读)锁?

2023-12-31

有没有办法在 Oracle (10g) 中独占锁定表以进行读取?我对Oracle不是很熟悉,所以我问了DBA,他说在Oracle中不可能锁定一个表来读取?

我实际上正在寻找类似 SQL Server (TABLOCKX HOLDLOCK) 提示的内容。

EDIT:

针对一些答案:我需要锁定表进行读取的原因是实现一个可以被多个客户端读取的队列,但是2个客户端读取同一条记录应该是不可能的。所以实际发生的情况是:

  1. 锁表
  2. 读取队列中的下一个项目
  3. 从队列中删除项目
  4. 删除表锁

也许还有另一种方法可以做到这一点(更有效)?


如果您只是想阻止任何其他会话修改数据,您可以发出

LOCK TABLE whatever
/

这会阻止其他会话更新数据,但我们不能阻止其他人读取数据。

请注意,在 Oracle 中很少需要这种表锁定,因为 Oracle 运行读取一致性策略。这意味着如果我们运行一个需要十五分钟才能运行的查询,则返回的最后一行将与第一行一致;换句话说,如果结果集以相反的顺序排序,我们仍然会看到完全相同的行。

edit

如果你想实现一个队列(没有实际使用Oracle的内置高级排队功能 http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96587/toc.htm) then SELECT ... FOR UPDATE是要走的路。这一结构允许一个会话选择并锁定一行或多行。其他会话可以更新未锁定的行。然而,实现一个真正的队列是相当麻烦的,除非你使用的是 11g。 Oracle直到最新版本才支持SKIP LOCKED条款。了解更多 http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_10002.htm#SQLRF01702.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle 10g 上的独占表(读)锁? 的相关文章

  • 如何在 Hibernate 中使用 Oracle 查询提示

    我试图在 Hibernate 中使用 Oracle 提示来调用强制索引 但在 Hibernate 3 6 10 Final 中没有找到任何合适的 API 我以某种方式尝试了 Hibernate 标准中的预测 proList add Proj
  • SQL使用多个/相关列计算项目频率?

    我对 SQL 完全陌生 并且阅读了有关 SQL 的 StackOverflow 帖子来尝试弄清楚这一点 以及其他来源 但无法在 SQL 中执行此操作 开始 我有一个 3 列和数千行的表 其中包含前 2 列的数据 第三列当前为空 我需要根据第
  • Monitor.Pulse & Wait - 意外行为

    http www codeproject com Articles 28785 Thread synchronization Wait and Pulse demystified http www codeproject com Artic
  • sql server GO 相当于 oracle

    我正在为 Oracle 编写迁移脚本 我需要更改表结构 然后用数据填充它 我想先进行结构更改 然后再进行数据更改 在 SQL Server 中我会使用GO分离批次 是否有 SQL ServerGOOracle 中的等效命令 It s and
  • 如何在 Oracle 中列出活动/打开的连接?

    是否有任何隐藏表 系统变量或其他东西可以显示给定时刻的活动连接 Use the V SESSION http docs oracle com cd B19306 01 server 102 b14237 dynviews 2088 htm
  • Oracle:如果表存在

    我正在为 Oracle 数据库编写一些迁移脚本 并希望 Oracle 有类似于 MySQL 的东西IF EXISTS构造 具体来说 每当我想删除 MySQL 中的表时 我都会执行类似的操作 DROP TABLE IF EXISTS tabl
  • ORA-01749: 您不能向自己授予/撤销权限

    我正在运行以下查询RATOR MONITORING授予引用权限的架构RATOR MONITORING CONFIGURATION SMSC GATEWAY表到RATOR MONITORING schema GRANT REFERENCES
  • 如何将整行(在 SQL 中,而不是 PL/SQL 中)传递给存储函数?

    我遇到以下 非常简单 问题 我想编写一个 Oracle SQL 查询 大致如下 SELECT count MyFunc MyTable FROM MyTable GROUP BY MyFunc MyTable 在 PL SQL 中 可以使用
  • 尝试使用 sql 获取单行结果? [复制]

    这个问题在这里已经有答案了 我正在尝试显示所有员工 ID 我需要这样的结果 emp id 10 11 12 13 14 15 当尝试时 SELECT LISTAGG emp id WITHIN GROUP ORDER BY emp id A
  • PLSQL 中的时区转换

    我需要将系统日期和时间转换为特定时区 例如东部时间 我无法假设我当前的时区 如何在plsql中转换它 请帮我 假设你有一个TIMESTAMP WITH TIME ZONE 例如systimestamp 您可以使用AT TIME ZONE句法
  • 为什么这个 oracle 批量插入不起作用?

    我正在尝试将一些数据批量插入到 oracle 数据库中 我按照文档中的示例进行操作 this DataBaseAccess new OracleConnection connString var dataAdapter new Oracle
  • NOLOCK 和 UNCOMMITTED 之间有什么区别

    我使用 SQL Server 2012 我写了两个查询 但是它们之间有什么不同NOLOCK and UnCommitted SELECT lastname firstname FROM HR Employees with READUNCOM
  • JDBC元数据检索约束信息

    我需要来自约束名称的有关表和列名称的信息 是否存在类似于connection getMetadata getX的人来检索约束信息 我的测试用例在Oracle数据库中 但我最好的解决方案只是想用jdbc来解决 如果您正在谈论外键和主键约束 这
  • 将交易数据从时间和状态列标准化为每个状态值的分钟数

    我有一个用户状态变化表 例如 insert time status 1 1 2017 0 00 AVAILABLE 1 1 2017 0 15 BUSY 1 1 2017 0 30 NOT AVAILABLE 1 1 2017 1 30 A
  • count(distinct) over (partition by... 在 Oracle SQL 中不起作用

    我想数一下distinct day number过去 30 天 但是 distinct 函数不能与over 如果我删除distinct 它会给我总数day number but day number可以有很多重复的 所以这就是为什么我想添加
  • Oracle 函数中的加密/解密密码

    由于以前设计不佳的结构 我必须使用的当前数据库将用户密码存储为文本 现在 我正在构建一个必须使用这些密码的前端部分 我当然不想发送未加密的密码 我的想法是编写一个 Oracle 函数来加密和解密文本密码 并在存储过程中使用这些函数来返回加密
  • 如何在oracle sql查询中提取括号之间的字符串

    我正在尝试从字符串中提取括号之间的值 我怎样才能做到这一点 例如 我有这个字符串 Gupta Abha 01792 我想得到括号之间的结果 即 01792 我正在尝试编写这样的查询 select substr Gupta Abha 0179
  • 实体框架与oracle数据库的连接

    我使用的是 Entity Framework 6 1 版本和 oracle 11 我是实体框架的新手 任何人都可以建议连接 oracle 的先决条件是什么 任何更改都需要在 web config 中进行 在web config中 默认它是与
  • Oracle中“NUMBER”和“NUMBER(*,0)”相同吗?

    在甲骨文中文档 http docs oracle com cd B28359 01 server 111 b28318 datatype htm i22289据说 数字 精度 小数位数 如果未指定精度 则该列将存储给定的值 如果 未指定比例
  • 带触发器的物化视图?

    我可以在物化视图上创建触发器吗 我用的是甲骨文10g 是的你可以 请小心 这是什么Oracle 文档 http download oracle com docs cd B19306 01 server 102 b14200 statemen

随机推荐

  • TaskExecutor 不工作 Spring 集成

    我已经使用任务执行器设置了文件轮询器 ExecutorService executorService Executors newFixedThreadPool 10 LOG info Setting up the poller for di
  • Mongodb - “递归”删除空字段?

    这是一个基于的问题MongoDb 删除所有为空的字段 https stackoverflow com questions 25287204 mongodb remove all fields that are null 引用的帖子仅提供了删
  • 如何判断字符串是否已经经过 URL 编码?

    如何检查字符串是否已被编码 例如 如果我编码TEST I get TEST 3D 3D 如果我再次对最后一个字符串进行编码 我得到TEST 253D 253D 在这样做之前我必须知道它是否已经编码 我已经保存了编码参数 我需要搜索它们 我不
  • ios Swift 商品未添加到购物车

    当我点击下面的 添加 按钮时 产品不会添加到购物车 并且结帐 0 不会增加到结帐 1 等 我做错了什么 阅读 Larme 的第一条评论后 原始问题得到解决 这是一个菜鸟错误 我忘记将 cell delegate self 放入 tableV
  • 什么是数据库文件系统?

    我对什么是数据库文件系统知之甚少 有人可以向我解释一下数据库文件系统到底是什么 以及它的应用程序是什么吗 它与传统的文件系统有何不同 我怎样才能建造它 典型的文件系统 nix ms dos 等 按层次结构组织文件 例如 c 代表层次结构的顶
  • 如何防止 .htaccess 在特定目录中使用?

    我有一个网站 可以说 http www example com 我正在使用重写模块 但我有一个子文件夹forum example com 我不想要 htaccess要影响这个目录 我该怎么做 If your forum domain com
  • 将参数发送到 Web 服务

    开始之前 我正在使用 Objective C 为 Iphone 编程 我已经使用 NSURLRequest 和 NSURLConnection 实现了对 Web 服务函数的调用 然后该函数返回一个包含我需要的信息的 XML 代码如下 NSU
  • Rails 3,将局部变量传递给部分[重复]

    这个问题在这里已经有答案了 可能的重复 Rails 对将局部变量传递给局部变量的语法感到困惑 https stackoverflow com questions 4402556 rails confused about syntax for
  • 从图像中获取像素颜色[重复]

    这个问题在这里已经有答案了 我在浏览器上有一张图片 我想获取图像颜色的左上角像素 坐标 0 0 无论图像是否旋转 我该如何使用 javascript 或 php 代码来做到这一点 创建画布文档 createElement 获取二维上下文ca
  • 在 tmux 下使用 $TERM='screen-256color' 时,HOME 和 END 键不起作用。为什么?

    我已经设置了 tmux TERM被设置为screen 256color正确 这工作正常 并且颜色设置正确 但是它阻止我发送HOME and END终端的密钥 而是打印为F n and H n 我应该补充一点 home 似乎可以在 irssi
  • 支持 IE11 的 vue cli3 lib

    根据文档 https cli vuejs org guide build targets html library https cli vuejs org guide build targets html library 我不清楚如何集成
  • 在 Node WebKit 中启用触摸事件

    我使用自定义触摸屏 我想默认激活触摸事件节点 webkit https github com rogerwang node webkit 那可能吗 This one https github com rogerwang node webki
  • 如何在不看到控制台的情况下检测unity c#运行时是否有错误? [复制]

    这个问题在这里已经有答案了 是否可以在不读取控制台日志的情况下检测在 Unity 中运行的 C 脚本中的错误 当我必须构建游戏并在手机中测试它时 我需要这个 如果运行时出现错误 它将显示一个消息框来显示错误 据我了解 我们可以使用Unity
  • 如何在 .NET Core 的主布局视图中渲染特定控制器的操作?

    我正在打电话 TopNav 部分来自内部Layout主视图 I want TopNav要强类型化的视图和要在其中创建的模型TopNavController 有什么方法可以从主视图中渲染特定控制器的操作吗 所以在这种情况下我需要渲染TopNa
  • 覆盖后退按钮以充当主页按钮

    按下后退按钮后 我希望我的应用程序进入停止状态 而不是销毁状态 在安卓中docs http developer android com intl fr guide practices ui guidelines activity task
  • @WithUserDetails 似乎不起作用

    我有一个应用程序 其中使用 Spring Social Security 进行身份验证和授权 不幸的是 我在模拟 Spring Security 时遇到了一些问题 似乎根本不起作用 我有一个 REST 控制器 如果它应该返回的实体的标识符不
  • 如何使用MessageUI框架在iPhone上发送iMessage消息

    是否可以使用 iPhone 上的 MessageUI 框架从应用程序内部发送消息 或者 有 iMessage 的 URL 方案吗 使用 iOS 4 您可以从应用程序内部发送电子邮件和短信 使用 MessagUI 视图控制器 由于 iOS 5
  • 用于 Java 的 ANTLR4。如何显示词法分析中的错误

    如何在词法分析过程中显示错误列表 如果有 我尝试了以下方法 但我的输出是 org antlr v4 runtime ConsoleErrorListener 1026c84c 我写的代码 private static String erro
  • 开源 php docx 到 pdf 转换?

    是否有任何开源 PHP 工具可以用来将 doc docx 转换为 pdf 如果您有任何好的教程或工具 将不胜感激 我正在研究 phpLiveDocx 但看起来他们按月收费 或者也许是 php 或 linux 中的 odt 到 pdf 尝试
  • Oracle 10g 上的独占表(读)锁?

    有没有办法在 Oracle 10g 中独占锁定表以进行读取 我对Oracle不是很熟悉 所以我问了DBA 他说在Oracle中不可能锁定一个表来读取 我实际上正在寻找类似 SQL Server TABLOCKX HOLDLOCK 提示的内容