Информационное обеспечение


Задание к лабораторной работе



бет26/56
Дата05.03.2023
өлшемі256,49 Kb.
#71567
түріПрактикум
1   ...   22   23   24   25   26   27   28   29   ...   56
Байланысты:
СУБДOracle

Задание к лабораторной работе





  1. Написать с помощью пакета DBMS_SQL динамическую процедуру или функцию, в которой заранее неизвестен текст команды SELECT. Предусмот- реть возможность вывода разных результатов, в зависимости от количества пе- редаваемых параметров.

  2. Написать, используя встроенный динамический SQL, процедуру созда- ния в БД нового объекта (представления или таблицы) на основе существую- щей таблицы. Имя нового объекта должно формироваться динамически и про- веряться на существование в словаре данных. В качестве входных параметров указать тип нового объекта, исходную таблицу, столбцы и количество строк, которые будут использоваться в запросе.

  3. Выполнить, используя динамический SQL, одно из предложенных за- даний:

    1. Создать процедуру, которая принимает в качестве параметров имя таблицы и имена четырех полей в этой таблице. Первое поле она интерпрети- рует как ФИО, разбивает его на составляющие и заполняет три оставшихся по- ля. Если значение первого поля не может быть правильно проинтерпретировано как ФИО (отсутствует отчество, имя и отчество или в строке встречаются недо- пустимые символы), она помещает в первое поле из трех оставшихся значения ключа (ROWID) этой записи, а во втором и третьем выводит соответствующее сообщение об ошибке строчными и прописными буквами.

    2. Создать процедуру, которая принимает в качестве параметра имя таблицы и имя поля в этой таблице. Процедура подсчитывает и выводит на экран статистику по этой таблице: количество записей, имя поля, количество различных значений поля, количество null-значений.

    3. Создать процедуру, которая принимает в качестве параметра имя таблицы. Процедура выводит на экран или в новую таблицу аудита информа- цию обо всех таблицах, связанных с указанной таблицей по внешнему ключу и принадлежащих пользователю, от имени которого запускается эта процедура. Эта информация включает в себя имя связанной таблицы, общее количество за- писей в ней и количество различных значений внешнего ключа.

    4. Создать процедуру, которая делает копию указанной таблицы, добав- ляя в нее поле «идентификатор» с типом number(n). Параметры: имя исходной таблицы, имя результирующей таблицы, имя добавляемого поля, размер N. Про- цедура копирует структуру и данные исходной таблицы, проставляя в качестве значения поля «идентификатор» целые числа, начиная с 1.

    5. Создать процедуру, которая принимает в качестве параметров имя таблицы и имена двух полей в этой таблице. Первое поле имеет символьный тип с маской 'DD.MM.YYYY' и интерпретируется как дата. Во второе поле эта дата проставляется в формате 'YYYY/MM/DD'. Если дата неправильная, то вто- рому полю присваивается значение null.

    6. Создать процедуру, которая выводит на экран информацию о количе- стве записей во всех таблицах, принадлежащих пользователю, от имени кото- рого запускается эта процедура.

    7. Создать функцию, которая принимает в качестве параметра имя таб- лицы и имя поля в этой таблице и возвращает среднее арифметическое по это- му полю. В том случае, если тип поля не позволяет посчитать среднее арифме- тическое, функция должна возвращать null.

    8. Создать процедуру, которая принимает в качестве параметра имя таблицы и имена двух полей в этой таблице и добавляет содержание первого поля к содержанию второго. Если поле_2 пустое, то просто копировать поле_1 в поле_2 и наоборот.

    9. Написать процедуру, которая выведет на экран отчет по указанным полям заданной таблицы, причем по некоторым из них может происходить группировка или сортировка. Также в качестве параметра должен задаваться разделитель столбцов в отчете (по умолчанию «|»).

  4. Написать программу, которая позволит для двух указанных в парамет- рах таблиц существующей БД определить, есть ли между ними связь «один ко многим». Если связь есть, то на основе родительской таблицы создать новую, в которой будут присутствовать все поля старой и одно новое поле с типом кол- лекции, в котором при переносе данных помещаются все связанные записи из дочерней таблицы.





Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   ...   56




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет