我知道oracle序列在递增时应该是线程安全的。但是,当只检索当前值时呢?
比如说下面的
BEGIN
FOR i IN 1..10 LOOP
IF i = 1 THEN
INSERT INTO TABLE1 (COLUMN1, COLUMN2) VALUES (test_seq3.NEXTVAL,'BB');
ELSE
INSERT INTO TABLE1 (COLUMN1, COLUMN2) VALUES (test_seq3.CURRVAL,'BB');
END IF;
END LOOP;
END;
如果我在两个不同的线程中运行上述语句,test_seq3可能在第一个循环结束之前递增两次吗?
答案 0 :(得分:1)
是的,但CURRVAL对于给定的会话将保持一致。
你为什么不尝试看看;你几乎已经写了测试用例。