易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE 想清楚了再做,要谨慎些 兄弟

 星期一 发现一个表有很多重复数据 随机使用删除重复数据的语句。
星期二 发现 这语句跑了很久都没跑完,13个小时了!只不过删除10个月的数据而已
依然断了它,可它回滚花了4个小时,上午影响了数据库的服务速度了。
然后一个月一个月检查重复数据的范围,最后定位到9月到10月。删除它,用那条语句很慢,一个小时后断了它。然后把该表的索引删除了,再把表指为NOLOGGING。30分钟就把数据删除了。
随后接着建索引,和关键字。
星期三 发现 关键字没成功,还有很多重复数据,感觉不对头。查看了下重复数据的具体情况,不重复啊! 问及业务人员才知道该表确定唯一记录 要有三个字段来确定。
原来靠2个字段来确定重复记录,现在可好了把2009年的数据都删了!
晚上觉得重导数据,先清空了表,然后建主建,倒数据。等到22:30 还没结束实在要走了!
星期四 发现手工导数据过程跑了384分钟 在凌晨4点报错ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中),作业的相应过程也跑了159分钟后报同样的错,而且影响了很多过程。
看了该过程看到最后有个UPDATE 更新3年的字段 估计是导致报错的原因!
在导数据的过程中 有COMMIT 呀 才执行后面的UPDATE 为什么表没有存到呢? 乖乖的哦
同事来说数据怎么样?他的活动要查! 我为什么不先导2009年的数据满足用户使用,现在导的是2007的数据。
总结下:为了除掉重复数据而导致的后果,主要是因为自己没有想清楚。起码不要全表删掉了数据,删除2009年的数据,这样不会报错。要么先导2009年的数据,先满足用户需要。


相关文档:

oracle的归档模式

一。查看oracle数据库是否为归档模式:
1.select name,log_mode from v$database;
NAME               LOG_MODE
------------------ ------------------------
QUERY           NOARCHIVELO ......

oracle 10g基础操作表

  1创建新表
  1.1从查询到的表创建表
  create table temp as select stuName,stuNo,stuSex from stuInfo where stuAge>25;
  1.2创建新表
  /*学生信息表*/
  create table stuInfo(
  stuName varchar2(10) ,
  stuNo varchar2(10),
  stuSex varchar2(4),
  stuAge number(2),
  st ......

oracle临时表相关知识

 在Oracle8i或以上版本中,可以创建以下两种临时表:
1。会话特有的临时表
    CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
    ON COMMIT PRESERVE ROWS;
  
2。事务特有的临时表
    CREATE GL ......

Java 调用 Oracle 存储过程返回结果集

Oracle 存储过程返回结果集用 ref cursor 实现。
试验步骤如下:
1. 建立 ref cursor 类型和过程
CREATE OR REPLACE PACKAGE types
AS
    TYPE ref_cursor IS REF CURSOR;
END;
/
CREATE TABLE STOCK_PRICES(
    RIC VARCHAR(6) PRIMARY KEY,
    PRICE NUMBER(7 ......

Oracle中与SQLSERVER ISNULL函数相同作用的函数

NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值
NVL2(Expr1,Expr2,Expr3)如果Expr1为NULL,返回Expr2的值,否则返回Expr3的值
NULLIF(Expr1,Expr2)如果Expr1和Expr2的值相等,返回NULL,否则返回Expr1的值 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号