Щоб скоротити таблицю, таблиця повинна бути у вашій схемі або ви повинні мати системний привілей DROP ANY TABLE. Щоб указати пропозицію CASCADE, усі дочірні таблиці, яких це стосується, повинні бути у вашій схемі або ви повинні мати системний привілей DROP ANY TABLE.
Використання сценарію SELECT CONCAT('TRUNCATE TABLE ', TABLE_NAME, ';') FROM INFORMATION_SCHEMA. TABLES WHERE TABLE_SCHEMA = 'назва_вашої_бази_даних'; Цей сценарій створює список команд TRUNCATE TABLE для кожної таблиці у вказаній базі даних. Потім ви можете виконати ці команди, щоб скоротити всі таблиці.
put_line('Таблиця'||table_names(i)|| 'успішно скорочено'); КІНЦЕВА ПЕТЛЯ; КІНЕЦЬ; / –Використовуючи тип для передачі кількох вхідних значень. EXEC Trunc_Mul_Tab(table_ty('EMP','DEP','STUDENTS','MARKS')); Відповідно до коду вище, який я тестував у нижчому середовищі. Виконано успішно.
Наступний приклад демонструє, що операцію TRUNCATE TABLE всередині транзакції можна відкотити.
- Створіть тестову таблицю з трьох рядків. …
- Перевірте дані перед скороченням. …
- Обріжте таблицю в транзакції та перевірте кількість рядків. …
- Відкотіть транзакцію і перевірте дані. …
- Прибрати стіл.
Відкрийте редактор SQL і введіть цей запит:SELECT table_name FROM all_tables;“. Це призведе до отримання всіх назв таблиць у словнику даних.