
在Oracle中,SELECT语句在带有下列哪个选项中的子句时可以在表的一行或多行放置排它锁()
A、FOR INSERT
B、FOR UPDATE
C、FOR DELETE
D、FOR REFRESH
如果只是SELECT的话,Oracle是不会加任何锁的,也就是Oracle对SELECT读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前SELECT语句的结果,但是因为没有锁,所以SELECT结果为当前时刻表中记录的状态。
当对话使用SELECT ... FOR UPDATE子串打开一个游标时,所有返回结果集中的数据行都将处于行级(Row-X)独占式锁定,其它对象只能查询这些数据行,不能进行UPDATE、DELETE或SELECT ... FOR UPDATE操作,但是可以执行INSERT的操作。在Oracle 10g之前FOR UPDATE是行级共享锁(SS,Sub-Share)锁,在Oracle 10g及其以后的版本中,FOR UPDATE属于行级排它锁(SX,Sub-Exclusive)。
在Oracle中无A、C和D选项的语法。
所以,本题的答案为B。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。




