русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задача. Удаление всех таблиц и вьюшек.


Дата добавления: 2015-08-31; просмотров: 693; Нарушение авторских прав


Часть 1. Написать PL/SQL блок, который дропает все таблицы текущей схемы, начинающиеся на 'KK_'.

 

Напишем блок, запускающий динамический SQL:

begin

for z in (select 'drop table ' || table_name as drop_statement

from user_tables

where table_name like 'KK%') loop

execute immediate z.drop_statement;

end loop;

end;

 

Часть 2. Написать PL/SQL блок, который выдает в DBMS_OUTPUT скрипт удаления всех вьюшек текущей схемы, начинающихся с 'VW_KK%'.

 

Напишем блок, выдающий скрипт:

BEGIN

FOR Z IN (SELECT VIEW_NAME FROM USER_VIEWS WHERE VIEW_NAME LIKE 'VW_KK%') LOOP

DBMS_OUTPUT.PUT_LINE('DROP VIEW ' || TO_CHAR(Z.VIEW_NAME) || ';');

END LOOP;

END;

Задача. Отчет о максимальных ID.

Создать пустую таблицу KK_MAX_ID_REPORT(table_name varchar2(30), max_id number).

Написать PL/SQL блок, который по всем таблицам текущей схемы, начинающимся с 'KK', в которых есть поле ID c типом данных NUMBER или INTEGER, заполняет таблицу KK_MAX_ID_REPORT данными о максимальных значениях поля ID.

 

Создадим таблицу для отчета:

CREATE TABLE KK_MAX_ID_REPORT(TABLE_NAME VARCHAR2(30), MAX_ID NUMBER);

 

Напишем и выполним решающий задачу блок с динамическим SQL:

BEGIN

EXECUTE IMMEDIATE 'TRUNCATE TABLE KK_MAX_ID_REPORT';

FOR Z IN (SELECT TABLE_NAME

FROM USER_TAB_COLUMNS

WHERE TABLE_NAME LIKE 'KK%'

AND COLUMN_NAME = 'ID'

AND DATA_TYPE IN ('NUMBER', 'INTEGER')) LOOP

EXECUTE IMMEDIATE 'INSERT INTO KK_MAX_ID_REPORT (TABLE_NAME, MAX_ID) SELECT ''' ||

Z.TABLE_NAME || ''', MAX(ID) FROM ' || Z.TABLE_NAME;

END LOOP;

COMMIT;

END;

 

Проверим результат:

SELECT * FROM KK_MAX_ID_REPORT;



<== предыдущая лекция | следующая лекция ==>
С помощью динамического вызова команды truncate очистить таблицу kk_objects_list от данных. | Задача. Переименование столбцов.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.311 сек.