Как я могу обрезать все пользовательские таблицы в oracle? У меня проблема с ограничениями таблиц.Как обрезать все пользовательские таблицы?
ответ
Нет необходимости в переменных
begin
for r in (select table_name from user_tables) loop
execute immediate 'truncate table ' || r.table_name;
end loop;
end;
С уважением 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;
/
Вы можете вывести, а затем выполнить понравившийся:
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;
Улучшение в случае, если вы имеете специальные ограничения которые превышают сценарий:
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;
/
К сожалению, ограничения ограничены по порядку. вы можете исправить деактивацию ограничений, добавив «каскад» в конце команды «disable». , но, скорее всего, вы не сможете автоматизировать активацию ограничений. – mmoossen
Улучшен указанный выше сценарий, если вы не можете удалить ограничение, поскольку существуют зависимости (в виде внешних ключей, которые зависят от этого ограничения - ORA-02297.) И путем печати всех (отключить, усечь и включить).
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 - Как обрезать все таблицы?
- 2. Как удалить все пользовательские таблицы?
- 3. Как правильно обрезать таблицы?
- 4. Как я могу обрезать все таблицы из базы данных MySQL?
- 5. MS SQL Server Как обрезать все строки таблицы по длине?
- 6. эффективно обрезать таблицы postgresql
- 7. Drupal 8 - мультисайт с общими столами (пользовательские таблицы/все таблицы)?
- 8. Rake задача обрезать все таблицы в Rails 3
- 9. Лучший способ обрезать все таблицы с спящим режимом?
- 10. Обрезать все пробелы в массиве
- 11. Обрезать все символы, кроме цифр
- 12. Как обрезать все пробелы в HAML?
- 13. Как можно обрезать все элементы в списке?
- 14. обрезать все пробелы из строки
- 15. WPF: Обрезать все текстовые поля
- 16. Обрезать все поля базы данных
- 17. Пользовательские ячейки таблицы отображения
- 18. Обрезать все ячейки в рабочей книге (VBA)
- 19. Нужно обрезать таблицы, используя функцию plpgsql
- 20. Пользовательские таблицы или кнопки?
- 21. Как очистить все таблицы в Apache Derby?
- 22. Пользовательские Таблицы Google функционируют
- 23. Пользовательские таблицы UIAction?
- 24. Как получить пользовательские таблицы просмотра таблицы для расширения конца таблицы?
- 25. Как отображать данные таблицы как Пользовательские рейтинги
- 26. Обрезать конечное пространство из содержимого таблицы
- 27. обрезать все до последней слэш vb.net
- 28. PHP необходимо обрезать все переменные $ _POST
- 29. Как обрезать все данные в моей базе данных MySQL?
- 30. Могу ли я обрезать таблицы динамически?
-1 Не обращается к необходимости обрабатывать ограничения – APC