ORACLE事务机制,附PHP+ORACLE操作实例
熟悉SQL SERVER的话,肯定常用到BEGIN TRAN和COMMIT TRAN语句。但在ORACLE中并没有这种类似的事务控制语句,ORACLE当然有事务,不然也不会是最牛X的数据库服务器软件了。下面简单的介绍下ORACLE的事务机制。
在ORACLE中采用隐式事务,既然是隐式事务,显然是不需要COMMIT TRAN语句了,但COMMIT还是要的。
在默认情况下,ORACLE对每次查询中对表的修改都是有隐式事务的,直到执行到COMMIT;或ROLLBACK;时提交或回滚事务。
下面附上一段在PHP中一条语句操作多个表的解决办法。OCI_DEFAULT模式将默认为每次查询产生一个事务。
$sql = ‘BEGIN
UPDATE TEST_A SET COLUMN_A = 1 WHERE ROWNUM = 1;
UPDATE TEST_B SET COLUMN_B = 2 WHERE ROWNUM =1;
END;’;
$conn = oci_connect(’scott’, ‘tiger’, ‘orcl’);
$stmt = oci_parse($conn, $sql);
oci_execute($stmt, OCI_DEFAULT);
// 回滚事务,返回boolean值
$rollbacked = oci_rollback($conn);
// 提交事务,返回boolean值
$commited = oci_commit($conn);
实例完毕,谢谢收看CCTV。