русс | укр

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

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

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

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


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

Задача. LAST_DDL_TIME.


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


Выдать список объектов из user_objects, которые были модифицированы (last_ddl_time) за последние полгода.

 

SELECT *

FROM USER_OBJECTS

WHERE MONTHS_BETWEEN(SYSDATE, LAST_DDL_TIME) < 6

ORDER BY LAST_DDL_TIME DESC;

Задача. Отчет об объектах текущей схемы.

В цикле по всем объектам из user_objects вывести в dbms_output отчет со следующими полями: тип объекта, название объекта, дата создания. Отсортировать по дате создания.

 

begin

dbms_output.enable;

for z in (select object_type, object_name, created

from user_objects

order by created) loop

dbms_output.put_line(rpad(z.object_type, 31) ||

rpad(z.object_name, 31) ||

to_char(z.created, 'dd.mm.yyyy hh24:mi:ss'));

end loop;

end;

Задача. DBMS_OUTPUT из явного курсора по словарю данных.

По всем таблицам и вьюшкам, начинающимся с 'KK_TABLE', сгенерировать в dbms_output скрипт выборки всех полей из этих таблиц и вьюшек:

Select column11, column12, … , column1M from table1;

Select column21, column22, … , column2M from table2;

...

Select columnN1, columnN2, … , columnNM from tableN;

 

Создадим таблицы и вьюшку для теста:

CREATE TABLE KK_TABLE1(ID1 INTEGER, ID2 INTEGER, ID3 INTEGER);

CREATE TABLE KK_TABLE2(NAME1 VARCHAR2(10), NAME2 VARCHAR2(10));

CREATE TABLE KK_TABLE3(DT1 DATE);

CREATE TABLE KK_TABLE4(С1 CHAR(1), C2 CHAR(2));

CREATE OR REPLACE VIEW KK_TABLE5 AS SELECT ID1, ID3 FROM KK_TABLE1;

 

Во вьюшке USER_TAB_COLUMNS можно смотреть столбцы таблиц и вьюшек пользователя, под которым залогинен. Напишем блок, решающий задачу с использованием явного именованного курсора CR_TAB_COLUMNS:

 

DECLARE

CURSOR CR_TAB_COLUMNS IS

SELECT TABLE_NAME, COLUMN_NAME

FROM USER_TAB_COLUMNS

WHERE TABLE_NAME LIKE 'KK_TABLE%'



ORDER BY TABLE_NAME, COLUMN_ID;

V_GT CR_TAB_COLUMNS%ROWTYPE;

V_COLUMN_LIST VARCHAR2(4000) := '';

V_PREV_TABLE_NAME VARCHAR2(30) := '';

BEGIN

OPEN CR_TAB_COLUMNS;

LOOP

FETCH CR_TAB_COLUMNS

INTO V_GT;

IF V_PREV_TABLE_NAME <> V_GT.TABLE_NAME OR CR_TAB_COLUMNS%NOTFOUND /*Если пошла новая таблица или таблицы кончились, вывести SELECT в DBMS_OUTPUT*/ THEN

DBMS_OUTPUT.PUT_LINE('SELECT ' || SUBSTR(V_COLUMN_LIST, 3) ||

' FROM ' || V_PREV_TABLE_NAME || ';');

V_COLUMN_LIST := '';

END IF;

V_COLUMN_LIST := V_COLUMN_LIST || ', ' || V_GT.COLUMN_NAME; /*Накапливаем список столбцов*/

V_PREV_TABLE_NAME := V_GT.TABLE_NAME; /*Запоминаем таблицу с прошлой итерации цикла. Если таблица поменялась, то вывести готовый SELECT, иначе следует накапливать ее столбцы в V_COLUMN_LIST.*/

EXIT WHEN CR_TAB_COLUMNS%NOTFOUND;

END LOOP;

CLOSE CR_TAB_COLUMNS;

END;



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


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


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

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

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


 


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

 
 

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

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