1. loop exit when循环
此循环就相当于do...while循环至少执行一次
declare
i_var text.id%type;
i_cont number:=0;
begin
loop
insert into text(id) values(i_cont);
exit when i_cont>10;
i_cont:=i_cont+2;
end loop;
end;
2.whie循环
declare
i_var number:=0;
begin
while i_var < 10
loop
dbms_output.put_line(i_var);
i_var := i_var+1;
end loop;
end;
目前在中投保项目中使用的是mysql数据库结合hibernate的查询。
我们碰到一个实际的问题:
手动向mysql数据库更新的数据(包括增删改,确认已comiit)从hibernate中查询出来没有反应出新数据
但是通过系统录入的更新数据(即通过hibernate事务提交的数据)可以正常查询出来。
ps:我们在oracle中并未碰到此问题。
上网查询后发现修改数据库级别 为Read Commited 后可以解决此问题,但不知道会对系统是否有其它影响
估特此提出求教,望大家不吝指教,谢谢。
set global transaction isolation level read committed;
set transaction isolation level read committed;
隔离级别 是否存在脏读 是否存在不可重复读 是否存在幻读
Read Uncommited:不提交读 Y
Read Commited(Oracle默认):提交读 N Y Y
Repeatable Read(MysqL默认):可重复读 N N Y
Serialiazble:序列化读 N N N
此循环就相当于do...while循环至少执行一次
declare
i_var text.id%type;
i_cont number:=0;
begin
loop
insert into text(id) values(i_cont);
exit when i_cont>10;
i_cont:=i_cont+2;
end loop;
end;
2.whie循环
declare
i_var number:=0;
begin
while i_var < 10
loop
dbms_output.put_line(i_var);
i_var := i_var+1;
end loop;
end;
目前在中投保项目中使用的是mysql数据库结合hibernate的查询。
我们碰到一个实际的问题:
手动向mysql数据库更新的数据(包括增删改,确认已comiit)从hibernate中查询出来没有反应出新数据
但是通过系统录入的更新数据(即通过hibernate事务提交的数据)可以正常查询出来。
ps:我们在oracle中并未碰到此问题。
上网查询后发现修改数据库级别 为Read Commited 后可以解决此问题,但不知道会对系统是否有其它影响
估特此提出求教,望大家不吝指教,谢谢。
set global transaction isolation level read committed;
set transaction isolation level read committed;
隔离级别 是否存在脏读 是否存在不可重复读 是否存在幻读
Read Uncommited:不提交读 Y
Read Commited(Oracle默认):提交读 N Y Y
Repeatable Read(MysqL默认):可重复读 N N Y
Serialiazble:序列化读 N N N