Come posso troncare tutta la tabella utente in oracle? Ho problemi con i limiti delle tabelle.Come troncare tutte le tabelle utente?
risposta
Non c'è bisogno di variabili
begin
for r in (select table_name from user_tables) loop
execute immediate 'truncate table ' || r.table_name;
end loop;
end;
saluti K
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;
/
È possibile uscita, quindi eseguire quello che ti piace:
set serveroutput on;
begin
for r in (select table_name from user_tables) loop
dbms_output.put_line('truncate table ' || r.table_name);
end loop;
end;
Miglioramento nel caso in cui si hanno vincoli speciali che non riesce a eseguire lo script sopra riportato:
set serveroutput on;
declare
begin
for c1 in (select y.table_name, y.constraint_name from user_constraints y, user_tables x where x.table_name = y.table_name) loop
begin
dbms_output.put_line('alter table '||c1.table_name||' disable constraint '||c1.constraint_name || ';');
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;
/
i vincoli sono "vincolati" per ordine. è possibile correggere la disattivazione dei vincoli aggiungendo "cascade" alla fine del comando "disable". ma molto probabilmente non sarai in grado di automatizzare l'attivazione dei vincoli. – mmoossen
Migliorato lo script precedente nel caso in cui non sia possibile rimuovere il vincolo perché esistono delle dipendenze (sotto forma di chiavi esterne che dipendono da questo vincolo - ORA-02297.) E stampandone tutte (disabilitare, troncare e abilitare) dichiarazioni.
set serveroutput on;
declare
begin
for c1 in (select y1.table_name, y1.constraint_name from user_constraints y1, user_tables x1 where x1.table_name = y1.table_name order by y1.r_constraint_name nulls last) loop
begin
dbms_output.put_line('alter table '||c1.table_name||' disable constraint '||c1.constraint_name || ';');
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
dbms_output.put_line('truncate table '||t1.table_name || ';');
execute immediate ('truncate table '||t1.table_name);
end;
end loop;
for c2 in (select y2.table_name, y2.constraint_name from user_constraints y2, user_tables x2 where x2.table_name = y2.table_name order by y2.r_constraint_name nulls first) loop
begin
dbms_output.put_line('alter table '||c2.table_name||' enable constraint '||c2.constraint_name || ';');
execute immediate ('alter table '||c2.table_name||' enable constraint '||c2.constraint_name);
end;
end loop;
end;
- 1. H2 - Come troncare tutte le tabelle?
- 2. Come troncare le tabelle correttamente?
- 3. Come eliminare tutte le tabelle utente?
- 4. Troncare tutte le tabelle (la maggior parte delle quali presenta vincoli). Come rilasciarli temporaneamente
- 5. Eliminazione di tutte le tabelle/sequenze utente in Oracle
- 6. Psql elenca tutte le tabelle
- 7. Come disabilitare i vincoli per tutte le tabelle e attivarlo?
- 8. Attività di rastrellamento per troncare tutte le tabelle in Rails 3
- 9. ORMLite ripristina tutte le tabelle
- 10. Alter tutte le tabelle nel database
- 11. Elenco di tutte le tabelle nel database
- 12. DbContext di EF contiene tutte le tabelle?
- 13. Imposta IDENTITY_INSERT OFF per tutte le tabelle
- 14. Come elencare tutte le tabelle utente in Sybase insieme al loro conteggio delle righe?
- 15. elenco di tutte le tabelle nel database
- 16. Usa tablediff per confrontare tutte le tabelle
- 17. Entity Framework non includerà() tutte le tabelle
- 18. Sqlite: come si ripristinano tutte le tabelle del database?
- 19. Come eliminare tutte le tabelle in un database MySQL?
- 20. Doctrine2: Come impostare tutte le tabelle da confrontare con UTF8
- 21. Come bloccare tutte le tabelle in un mysql db?
- 22. Come si uniscono due tabelle senza nominare tutte le colonne?
- 23. Come creare trigger per tutte le tabelle in postgresql?
- 24. Come eliminare tutte le tabelle vuote in SQLite?
- 25. Come è possibile cancellare tutte le tabelle in ActiveAndroid?
- 26. Come visualizzare tutte le tabelle in un database HSQLDB?
- 27. ActiveRecord - come ottenere tutte le colonne di tabelle unite
- 28. Oracle aggiorna manualmente le statistiche su tutte le tabelle
- 29. Modificare le regole di confronto di tutte le colonne di tutte le tabelle in SQL Server
- 30. Cerca tutte le tabelle, tutte le colonne per un valore specifico SQL Server
-1 Non risponde alla necessità di gestire i vincoli. – APC