两张表,表结构如下:
-- Create table
create table ZL_ZBB
(
ZBID VARCHAR2(30) not null,
ZBTM VARCHAR2(30) not null,
YJZL VARCHAR2(3) not null,
CZRQ CHAR(1) not null,
YJJDM VARCHAR2(8) not null,
JDJDM VARCHAR2(8) not null,
SYZL NUMBER(10,4) not null,
HFBZ CHAR(1) not null,
YLJB VARCHAR2(2) not null,
YLZL VARCHAR2(2) not null,
GDRQ DATE not null,
JSF VARCHAR2(10) not null,
XJZ VARCHAR2(8) not null,
JSLB VARCHAR2(2) not null,
TSBZ VARCHAR2(2) not null,
ZLSX CHAR(1) not null,
YSJL NUMBER(8) not null,
PYJ VARCHAR2(8) not null,
JSJG NUMBER(16,6) not null,
BTJG NUMBER(16,6) not null,
DCJ VARCHAR2(8) not null,
SSSJJ VARCHAR2(8) not null,
CLZT VARCHAR2(2) not null,
BZ VARCHAR2(20)
)
-- Create/Recreate indexes
create index IND_TMP_JJJ on ZL_ZBB (JSF, JDJDM, DCJ);
create index IND_ZL_ZBB_JSF on ZL_ZBB (JSF);
create index IND_ZL_ZBB_JSLB on ZL_ZBB (JSLB);
create index IND_ZL_ZBB_YJZL on ZL_ZBB (YJZL);
create index IND_ZL_ZBB_YLZL on ZL_ZBB (YLZL);
create index IND_ZL_ZBB_ZBID on ZL_ZBB (ZBID);
create index IND_ZL_ZBB_ZBTM on ZL_ZBB (ZBTM);
-- Create table
create table YJZLFLB
(
YJZLBH VARCHAR2(3) not null,
YJZLMC VARCHAR2(40) not null,
YLZL CHAR(1) not null,
ZLSX VARCHAR2(1) not null,
FL1 VARCHAR2(3),
FL2 VARCHAR2(3),
FL3 VARCHAR2(3),
JDBZ CHAR(1) default '0' not null,
BTBZ CHAR(1) default '0' not null
)
-- Create/Recreate indexes
create index IND_YJZLFLB_FL1 on YJZLFLB (FL1);
create index IND_YJZLFLB_YJZLBH on YJZLFLB (YJZLBH);
zl_zbb表中有40W左右的记录,与yjzlflb联合查询,sql如下:
sql = select a.yjjdm yjjdm,b.yjzlmc yjzlmc,a.ylzl ylzl,a.yljb yljb
from zl_zbb a, tyjzlb b where a.yjzl = b.yjzlbh
在java程序中,逐行计算每一列,每一列计算完毕后,更新计算列。
update zl_zbb set jsjg=x where zbid=x
在程序运行时报错:java.sql.SQLException: ORA-01555: snapshot too old: rollback segment number 1 with name "_SYSSMU1$" too small。回滚段过小。
想请教的是:
1、在程序中数据库连接是自动提交,这种情况下会发生回滚段过小的错误吗?
2、查看回滚段,并未发现异常,这种情况下,不加大回滚段如何处理?