Oracle实用技巧
时间:2007-12-23 来源:不详 作者:迈克DB
ORA-01555:snapshottooold(rollbacksegmenttoosmall)
这说明oracle给此事务随机分配的回滚段太小了,这时可以为它指定一个足够大的回滚段,以确保这个事务的成功执行.例如
settransactionuserollbacksegmentroll_abc;
deletefromtable_namewhere...;
commit;
提交结束后ORACLE会自动释放对roll_abc的指定。
4.删除表中重复记录
方法原理:
1、Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的, rowid确定了每条记录是在ORACLE中的哪一个数据文件、块、行上。
2、在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中那些具有最大rowid的就可以了,其余全部删除。
实现方法:
SQL>createtablea(bmchar(4),mcvarchar2(20));
Tablecreated
SQL>insertintoavalues(’1111’,’aaaa’);
SQL>insertintoavalues(’1112’,’aaaa’);
SQL>insertintoavalues(’1113’,’aaaa’);
SQL>insertintoavalues(’1114’,’aaaa’);
SQL>insertintoaselect*froma;
4rowsinserted
SQL>commit; copyright dedecms
Commitcomplete
SQL>selectrowid,bm,mcfroma;
ROWIDBMMC
本文来自织梦
上一篇:SQLServer小技巧 下一篇:Oracle新手最经常碰到的6个错误及解决方案
文章评论
共有位Admini5网友发表了评论 查看完整内容