请教一个ORACLE事务问题 情况是这样:我有一个事务,这个事务是对两张表进行插入操作问题:在这个事务执行结束前,我能对其中一张表进行查询操作吗??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以查询,但是现在的insert 操作,在其他会话中看不到,只有该会话可以看到 --CREATE TABLE foo(username VARCHAR2(10));DECLARE v_username VARCHAR2(10);BEGIN SELECT COUNT(1) INTO v_username FROM foo; DBMS_OUTPUT.PUT_LINE('==>'||v_username); --结果为0 表中没有数据 INSERT INTO foo(username) VALUES('chenzw'); INSERT INTO foo(username) VALUES('chenzz'); SELECT COUNT(1) INTO v_username FROM foo; DBMS_OUTPUT.PUT_LINE('==>'||v_username); --结果为2 表中有两条数据,但是该两条数据尚未commit ROLLBACK; --回滚,撤销刚才的insert事务操作 SELECT COUNT(1) INTO v_username FROM foo; DBMS_OUTPUT.PUT_LINE('==>'||v_username); --结果为0 表中没有数据END;如上,在一个事务中,可以进行查询操作 事物有一致性的特性,因为你是对表进行了插入操作,在你提交之前,oracle是会把表锁住的,但这不影响你查询 READ UNCOMMITTED 幻想读、不可重复读和脏读都允许。 oracle连接到空闲实例 Oracle中有没有类似With nolock的 语法 如何取树状结构中某节点的包含其所有父级节点的路径? 求一SQL语句写法,可用立即给分 各位大侠指点 关于oracle的两个问题请教 这是什么错误阿?up有分 Oracle Instance Manager 启动我自己用Oracle Database Assistant建立的数据库时出现如下提示 oracle报表是否可以显示中文? oracle rac双节点一个快一个慢的难题,详情请进 oracle 存储过程问题 新手求助vm安装问题
--CREATE TABLE foo(username VARCHAR2(10));
DECLARE
v_username VARCHAR2(10);
BEGIN
SELECT COUNT(1) INTO v_username FROM foo;
DBMS_OUTPUT.PUT_LINE('==>'||v_username);
--结果为0 表中没有数据
INSERT INTO foo(username) VALUES('chenzw');
INSERT INTO foo(username) VALUES('chenzz');
SELECT COUNT(1) INTO v_username FROM foo;
DBMS_OUTPUT.PUT_LINE('==>'||v_username);
--结果为2 表中有两条数据,但是该两条数据尚未commit
ROLLBACK;
--回滚,撤销刚才的insert事务操作
SELECT COUNT(1) INTO v_username FROM foo;
DBMS_OUTPUT.PUT_LINE('==>'||v_username);
--结果为0 表中没有数据
END;
如上,在一个事务中,可以进行查询操作