ORACLE锁机制中有两种锁分为:排他锁、共享锁 排他锁:又称X锁,当用户操纵一条数据时,oracle会自动隐式的未该用户操纵的这条记录加上排他锁。加上排他锁后其他事务是不能对该条数据操纵的,只能查看,其他事务也不能再继加X锁。当本事务结束后,其他事务才
ORACLE锁机制中有两种锁分为:排他锁、共享锁
排他锁:又称X锁,当用户操纵一条数据时,oracle会自动隐式的未该用户操纵的这条记录加上排他锁。加上排他锁后其他事务是不能对该条数据操纵的,只能查看,其他事务也不能再继加X锁。当本事务结束后,其他事务才可加X锁操纵这条数据。
共享锁:又称S锁,加锁的用户只要查看权限,而不能增删改。其他用户也可对该数据加S锁,也只能有查看权限不能增删改。
ORACLE中加锁对象的不同,也可分为三种类型的锁。
1、DML锁
DML锁是最常用的锁,为保护表对象数据的一致完整性。该锁再可细分为
行级锁:简单说锁定表的数据行;也称排他锁又称TX锁。当对某些数据行使用DML语句时,oracle自动对该数据行添加行级锁,其他事务只能等到事务提交或释放后才能执行这些数据的DML操作;行级锁不是单独的锁,系统添加行级锁时,oracle也会自动加上该数据对应的表级锁,是为防止其他用户使用DDL语句修改表结构等从而破坏行级锁的约束
表级锁:简单说锁定整个对象表;也称表锁又称TM锁。表级锁可分为5种:
1).行共享
2).行排他
3).共享
4).共享排他
5).排他
2、DDL锁
3、系统锁:系统内部锁,用户无法调用查看的到,不需要了解。
手动加锁
一般情况下,ORACLE执行DML语句,一般时不需要手动加锁的,它会自动加锁。也可以手动的方式去添加锁,手动添加方式为:
1).SELECT 语句 FOR UPDATE [of columns] [wait n | nowait] [skip locked]; --对行记录加锁
2).LOCK TABLE tableName IN lockemode MODE NOWAIT --对表加锁
加锁语句练习:
1).使用SELECT 语句 FOR UPDATE语句加锁:
会话1:增加一条记录,不提交事务
SQL> select * from classes;
CID CNAME
--------------------------------------- ----------
1 0901
2 0902
3 0903
4 1111
SQL> update classes set cname='0000' where cid=4;
1 row updated
--在会话1中插入了一条记录但不提交,这时会话1同时拥有TX(行级锁),TM(表级锁)
会话2:使用SELECT * FOR UPDATE 语句加行级锁
SQL> select * from classes for update nowait;
select * from classes for update nowait
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源
--会话2对表里面行数据添加行级锁失败,因为会话1中还在占用该锁。 如不指定nowait | wait 关键字,会一直处于等待阶段,直到锁被释放才可获取到锁。
SQL> select * from classes for update;
SQL> --等待中....
2).使用LOCK TABLE 语句加锁
会话1:在会话1中修改一条记录,但不提交。
SQL> select * from classes;
CID CNAME
--------------------------------------- ----------
1 0901
2 0902
3 0903
4 0000
SQL> update classes set cname='1111' where cid=4;
1 row updated
--这时会话1中拥有TM,TX锁。
会话2:会话2表中添加行拍他锁
SQL> lock table classes in row exclusive mode nowait;
Table(s) locked
--添加表级锁成功。

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Atom editor mac version download
The most popular open source editor

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
