Oracle数据库编程:在PL/SQL中更改数据和管理事物
Oracle数据库编程:在PL/SQL中更改数据和管理事物
在PL/SQL中更改数据和管理事物:
DML语句的returning子句:
要获得insert、update、delete语句执行之后的信息,而不是执行之前的信息可以在语句后加上returning子句。
如果DML改变了多行数据,可以用return …bulk collect into val_collection获得改变多行的信息。
forall语句语法:
forall index(整数变量作为下标) in lower_bound(上界) ..upper_bound(下界)
sql语句;
forall语句的主题必须是单个的insert、update、delete语句。
数据库事物:
commit(提交)、rollback(滚回去)。
只要涉及到数据的增、删、改就会产生事物,事物要么执行提交,要么全部失败。
执行commit之后会释放在会话中所有的行和表锁。一旦执行就不能用rollback恢复。
自动提交事物:执行DDL(create table ,alter table ,drop table )、DCL(grant ,revoke)和退出SQL*plus时。
数据库中的锁:
在执行insert、update、delete语句 时自动产生行级排他锁(RX锁);
在执行create语句时自动产生共享锁(S锁);
在执行alteryu语句时自动产生排他锁(X锁);