Написать с помощью пакета DBMS_SQL динамическую процедуру или функцию, в которой заранее неизвестен текст команды SELECT. Предусмот- реть возможность вывода разных результатов, в зависимости от количества пе- редаваемых параметров.
Написать, используя встроенный динамический SQL, процедуру созда- ния в БД нового объекта (представления или таблицы) на основе существую- щей таблицы. Имя нового объекта должно формироваться динамически и про- веряться на существование в словаре данных. В качестве входных параметров указать тип нового объекта, исходную таблицу, столбцы и количество строк, которые будут использоваться в запросе.
Выполнить, используя динамический SQL, одно из предложенных за- даний:
Создать процедуру, которая принимает в качестве параметров имя таблицы и имена четырех полей в этой таблице. Первое поле она интерпрети- рует как ФИО, разбивает его на составляющие и заполняет три оставшихся по- ля. Если значение первого поля не может быть правильно проинтерпретировано как ФИО (отсутствует отчество, имя и отчество или в строке встречаются недо- пустимые символы), она помещает в первое поле из трех оставшихся значения ключа (ROWID) этой записи, а во втором и третьем выводит соответствующее сообщение об ошибке строчными и прописными буквами.
Создать процедуру, которая принимает в качестве параметра имя таблицы и имя поля в этой таблице. Процедура подсчитывает и выводит на экран статистику по этой таблице: количество записей, имя поля, количество различных значений поля, количество null-значений.
Создать процедуру, которая принимает в качестве параметра имя таблицы. Процедура выводит на экран или в новую таблицу аудита информа- цию обо всех таблицах, связанных с указанной таблицей по внешнему ключу и принадлежащих пользователю, от имени которого запускается эта процедура. Эта информация включает в себя имя связанной таблицы, общее количество за- писей в ней и количество различных значений внешнего ключа.
Создать процедуру, которая делает копию указанной таблицы, добав- ляя в нее поле «идентификатор» с типом number(n). Параметры: имя исходной таблицы, имя результирующей таблицы, имя добавляемого поля, размер N. Про- цедура копирует структуру и данные исходной таблицы, проставляя в качестве значения поля «идентификатор» целые числа, начиная с 1.
Создать процедуру, которая принимает в качестве параметров имя таблицы и имена двух полей в этой таблице. Первое поле имеет символьный тип с маской 'DD.MM.YYYY' и интерпретируется как дата. Во второе поле эта дата проставляется в формате 'YYYY/MM/DD'. Если дата неправильная, то вто- рому полю присваивается значение null.
Создать процедуру, которая выводит на экран информацию о количе- стве записей во всех таблицах, принадлежащих пользователю, от имени кото- рого запускается эта процедура.
Создать функцию, которая принимает в качестве параметра имя таб- лицы и имя поля в этой таблице и возвращает среднее арифметическое по это- му полю. В том случае, если тип поля не позволяет посчитать среднее арифме- тическое, функция должна возвращать null.
Создать процедуру, которая принимает в качестве параметра имя таблицы и имена двух полей в этой таблице и добавляет содержание первого поля к содержанию второго. Если поле_2 пустое, то просто копировать поле_1 в поле_2 и наоборот.
Написать процедуру, которая выведет на экран отчет по указанным полям заданной таблицы, причем по некоторым из них может происходить группировка или сортировка. Также в качестве параметра должен задаваться разделитель столбцов в отчете (по умолчанию «|»).
Написать программу, которая позволит для двух указанных в парамет- рах таблиц существующей БД определить, есть ли между ними связь «один ко многим». Если связь есть, то на основе родительской таблицы создать новую, в которой будут присутствовать все поля старой и одно новое поле с типом кол- лекции, в котором при переносе данных помещаются все связанные записи из дочерней таблицы.