【问题标题】:Delete all records from a schema in oracle pl sql从 oracle pl sql 中的模式中删除所有记录
【发布时间】:2014-09-03 06:56:30
【问题描述】:

我正在使用 oracle 10g。 我想从存在子记录的架构(用户)的每个表中删除所有记录。 我试图禁用每个表中存在的所有约束,然后尝试删除记录。 但这样做花了一整天的时间。 我们有更好的方法吗?

我试过了

BEGIN
   FOR i IN (SELECT table_name FROM user_tables)
   LOOP
      EXECUTE IMMEDIATE 'delete from' || '"'||i.table_name||'"';
   END LOOP;
   COMMIT;
END;

但出现子记录时会出现异常。 我想要这样的东西。

BEGIN
   FOR i IN (SELECT table_name FROM user_cons_columns)
   LOOP
   for j in (select column_name from i.table_name)
   loop
      EXECUTE IMMEDIATE 'alter table "'||i.table_name||'"'||' disable constraint "'||j.column_name||'"';
      end loop;
 END LOOP;
   COMMIT;
END;

请帮帮我。

【问题讨论】:

  • 禁用外键需要一整天吗?
  • 是的,因为我有大约 200 个表和 4 个不同的模式。
  • 是否可以删除架构并在将来重新创建它?
  • 是的。我将来会重新创建它
  • @KhurramZulfiqarAli 即使您在 4 个模式中执行循环,禁用约束也需要太多时间?

标签: plsql oracle10g


【解决方案1】:

您可以使用数据泵,导出您的架构:

expdp system/s 
directory=backup_dir 
CONTENT=METADATA_ONLY 
dumpfile=YOUR_SCHEMA_HEREmetaddl.dmp 
schemas=YOUR_SCHEMA_HERE 
logfile=YOUR_SCHEMA_HERE.$Date.log

然后删除您的架构:

drop user YOUR_SCHEMA_HERE cascade;

然后导入它:

impdp system/s 
directory=backup_dir 
dumpfile=YOUR_SCHEMA_HEREmetaddl.dmp 
logfile=imp_log_of_meta.log

【讨论】:

    【解决方案2】:

    尝试执行以下操作,然后删除所有具有子记录的表。 您可以更改查询以在删除所有记录时启用约束。

    BEGIN
       FOR c IN (    SELECT c.owner, c.table_name, c.constraint_name
        FROM user_constraints c, user_tables t
       WHERE     c.table_name = t.table_name
             AND c.status = 'ENABLED'
             AND constraint_type = 'R'
    ORDER BY c.constraint_type DESC)
       LOOP
          DBMS_UTILITY.exec_ddl_statement (
                'alter table "'
             || c.owner
             || '"."'
             || c.table_name
             || '" disable constraint '
             || c.constraint_name);
       END LOOP;
    END;
    /
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 2015-07-01
      • 2017-10-24
      • 2016-07-28
      • 2011-07-03
      • 2016-09-08
      相关资源
      最近更新 更多