good name
:
1,先备份吧
2,可以设置级联更新,或者把关系去掉
3,脚本方面你可以先建立个临时表,然后用plsql循环来操作,比如100条就commit一下,然后记住当前最大的rowid或者你能唯一的列,因为如果一旦失败,你可以得知从什么点上继续恢复!知道短点续传的好处吧

解决方案 »

  1.   

    all_indexes可以帮助你找到所有的索引,
    select * from all_indexes where owner='USER'
      

  2.   

    可以先使外键失效,然后修改数据,最后恢复外键.
    在pl/sql脚本中可以运行大致如下的语句:
    用一个游标
    select table_name,constraint_name into xxx,yyy from user_constraints 
        where R_CONSTRAINT_NAME in 
        (select CONSTRAINT_NAME from USER_CONSTRAINTS 
        where table_name='你的A表名称' and CONSTRAINT_TYPE='P');
    然后用动态sql
    execute immediate 'alter table '||xxx ||'disable constraint '||yyy ;
    循环去除外键约束.
    然后该你的数据。
    最后再恢复:
    还用那个游标:
    select table_name,constraint_name into xxx,yyy from user_constraints 
        where R_CONSTRAINT_NAME in 
        (select CONSTRAINT_NAME from USER_CONSTRAINTS 
        where table_name='你的A表名称' and CONSTRAINT_TYPE='P');
    用动态sql
    execute immediate 'alter table '||xxx ||'enable constraint '||yyy ;一切ok