sqlplus会话只读

Ole*_*liv 3 oracle sqlplus

在sqlplus中,我可以创建一个只读事务.

set transaction read only;
Run Code Online (Sandbox Code Playgroud)

是否可以创建只读会话?

我想连接到Oracle DB,使用UPDATE和INSERT执行一些测试,但即使在整个会话期间执行commit也不提交它们.

Gar*_*ers 5

您可以查看以下内容

CREATE TABLE dummy 
  (val NUMBER(1) 
       CONSTRAINT dummy_ck CHECK(val =1) DEFERRABLE INITIALLY DEFERRED)
/

insert into dummy VALUES (2);
..<bits here>..
commit;
Run Code Online (Sandbox Code Playgroud)

除非实际删除/更新DUMMY中的挂起条目,否则事务将在COMMIT时失败并自动回滚.如果是

INSERT....
COMMIT...
INSERT....
Run Code Online (Sandbox Code Playgroud)

然后第一次提交将触发失败/回滚,因此第二次提交将成功.所以这很难看,也不是特别安全.但它可能适合您的需求