How to truncate all user tables?

前端 未结 5 2474
抹茶落季
抹茶落季 2021-02-19 08:01

How can I truncate all user table in oracle? I have problem with tables constraints.

5条回答
  •  余生分开走
    2021-02-19 08:32

    declare
    
    begin
    
    for c1 in (select table_name, constraint_name from user_constraints) loop
        begin
            execute immediate ('alter table '||c1.table_name||' disable constraint '||c1.constraint_name);
        end;
    end loop;
    
    for t1 in (select table_name from user_tables) loop
        begin
            execute immediate ('truncate table '||t1.table_name);
        end;
    end loop;
    
    for c2 in (select table_name, constraint_name from user_constraints) loop
        begin
            execute immediate ('alter table '||c2.table_name||' enable constraint '||c2.constraint_name);
        end;
    end loop;
    
    end;
    /
    

提交回复
热议问题