Posts Tagged ‘PL/SQL’
Суббота, 29 сентября, 2018
Имеется таблица dept со следующей структурой:
Name Type Nullable Default Comments
------ ------------ -------- ------- --------
DEPTNO NUMBER
DNAME VARCHAR2(14) Y
LOC VARCHAR2(13) Y
Необходимо реализовать функцию PL/SQL которая будет возвращать выборку из таблицы dept заданную минимальным и максимальным значением поля DEPTNO. Реализуемая функция должна использовать метод pipelined.
(далее…)
Tags:Oracle, PL/SQL
Posted in Oracle, PL/SQL | No Comments »
Воскресенье, 12 февраля, 2017
Дан код:
CREATE OR REPLACE FUNCTION gеn_еmаil_name(р_fіrst_nаme IN VARCHAR2,
p_last_nаme IN VARCHAR2)
RETURN VARCHAR2 IS
v_emaіl_namе VARCHAR2(19);
BEGIN
v_emaіl_namе := substr(р_fіrst_nаme, 1, 1) || substr(p_last_nаme, 1, 7) ||
'@Oraclе.com';
RETURN v_emaіl_namе;
END gеn_еmаil_name;
/
(далее…)
Tags:Oracle, PL/SQL
Posted in Oracle, PL/SQL, Задачки | No Comments »
Воскресенье, 28 августа, 2016
Создать архивные таблицы такой же структуры, что таблица задач («задача») и таблица, связующая задачи и сотрудников («задача-сотрудник»). Написать функцию, перемещающую записи из основных таблиц («задача» и «задача-сотрудник») в соответствующие архивные таблицы и работающую в многопользовательском режиме. В качестве параметра функция получает дату, которая указывает, что задачи, завершенные до этой даты должны быть перенесены в архив. Функция возвращает 0, если в архивные таблицы была перенесена хотя бы 1 задача; функция возвращает 1, если не было перенесено ни одной задачи и возвращает 2, если при выполнении возникла ошибка.
Логическая модель
(далее…)
Tags:Function, Oracle, PARTITION, PL/SQL, SQL, SUBPARTITION
Posted in Oracle, PL/SQL, SQL | No Comments »
Воскресенье, 14 августа, 2016
Написать процедуру, которая рассчитывает ежегодную премию для сотрудников. Входными параметрами процедуры являются: рассматриваемый уровень служебной иерархии, необходимое количество задач, за которые сотрудник был ответственен в течении года, и % от ежемесячной зарплаты, который и составляет премию. Для каждого сотрудника, принадлежащего указанному уровню иерархии и бывшего ответственным в этом году не менее, чем за указанное число задач, рассчитать премию (% от зарплаты). Выходными параметрами являются признак успешного или неуспешного завершения процедуры и индексная таблица, каждый элемент которой имеет следующую структуру: код сотрудника и размер премии.
Логическая модель
(далее…)
Tags:Oracle, Package, PL/SQL, Procedure, SQL
Posted in Oracle, PL/SQL, SQL, Задачки | No Comments »
Суббота, 13 августа, 2016
Написать функцию, добавляющую данные о новой задаче и подключенных к ее решению сотрудниках в соответствующие таблицы БД. Параметрами функции являются: название задачи, даты начала и завершения по плану, описание задачи, код сотрудника, являющегося ответственным за эту задачу, и коды сотрудников, подключенных к ее решению. Последние передаются в виде строки с фиксированным разделителем между кодами различных сотрудников. Задача считается ранее введенной в систему, если существует задача с таким же названием и датой начала. В этом случае функция должна вернуть 1. Если допущены ошибки в параметрах функции, например, сотрудника с таким кодом не существует или параметр даты не преобразуется к корректному формату даты, то функция должна вернуть 2. В случае прочих ошибок, возникших при выполнении функции, вернуть 3. В случае успешного завершения функция должна вернуть 0.
Логическая модель
(далее…)
Tags:Function, Oracle, PL/SQL, SQL, SQL92
Posted in Oracle, PL/SQL, SQL, Задачки | No Comments »
Суббота, 30 июля, 2016
Проводятся соревнования по автогонкам из нескольких заездов с неопределенным количеством машин. Результаты содержатся в таблице и измеряются в очках. Имеется описание (цвет, модель, мощность в л.с.) машин (НЕ ВСЕХ), которое находится в отдельной таблице, однако, ВСЕ машины зарегистрированы (их гос. номера).
Вопрос:
Написать запрос: выдать лучший результат, средний результат, среднеквадратичное отклонение результата в каждом заезде, при условии, что до финиша (с очками) доехало не менее 3 машин и их суммарная мощность не меньше 1000 л.с. Если точного значения мощности для конкретной машины не имеется, то берется мощность, равная 334 л.с. У лучших результатов номера машин и их описание, если есть. Упорядочить результаты по возрастанию. Создать индексы для эффективной работы запроса.
Логическая модель
(далее…)
Tags:Oracle, PL/SQL, SQL
Posted in Oracle, PL/SQL, SQL, Задачки | No Comments »
Воскресенье, 3 июля, 2016
В базе данных необходимо хранить информацию о шариках (номер, диаметр, цвет). Номер шарика должен быть уникальным. В качестве первичного ключа использовать номер шарика запрещено. Редактирование номера шарика запрещено. Номер шарика должен формироваться минимальным из незанятых других шариков. Шарики могут быть связанны между собой веревочкой. Между любыми двумя шариками не может быть две веревочки. Шарик НЕ может быть связан сам с собой. Шарики не могут быть связаны, если целая часть от деления суммы номеров шариков на остаток от деления номеров кратно 3.
Логическая модель
(далее…)
Tags:Oracle, PL/SQL, SQL, SQL92
Posted in Oracle, PL/SQL, SQL, Задачки | No Comments »
Понедельник, 13 июня, 2016
Есть таблица CDR_TEL_YYYYMM
CREATE TABLE CDR_TEL_YYYYMM
("ID_TRANS" NUMBER(10),
"N_DURATION" NUMBER(10),
"B_PROCESSED" NUMBER(1) DEFAULT 0
) TABLESPACE MIRAVILD_DATA;
COMMENT ON TABLE CDR_TEL_YYYYMM IS 'Проводка';
COMMENT ON COLUMN CDR_TEL_YYYYMM.ID_TRANS IS 'Код проводки';
COMMENT ON COLUMN CDR_TEL_YYYYMM.N_DURATION IS 'Продолжительность проводки';
COMMENT ON COLUMN CDR_TEL_YYYYMM.B_PROCESSED IS 'Признак обработки (0 - не обработан)';
/
(далее…)
Tags:Cursor, Oracle, PL/SQL, SQL
Posted in Oracle, PL/SQL, SQL | No Comments »
Воскресенье, 12 июня, 2016
Есть справочник стран — таблица FW_COUNTRY
CREATE TABLE FW_COUNTRY
("ID_COUNTRY" NUMBER(10),
"V_NAME" VARCHAR2(64),
"B_DELETED" NUMBER(1) DEFAULT 0
) TABLESPACE MIRAVILD_DATA;
COMMENT ON TABLE FW_COUNTRY IS 'Страна';
COMMENT ON COLUMN FW_COUNTRY.ID_COUNTRY IS 'Код страны';
COMMENT ON COLUMN FW_COUNTRY.V_NAME IS 'Наименование страны';
COMMENT ON COLUMN FW_COUNTRY.B_DELETED IS 'Признак удаления (0 - активна)';
/
(далее…)
Tags:Oracle, PL/SQL, Procedure, SQL
Posted in Oracle, PL/SQL, SQL | No Comments »
Воскресенье, 12 июня, 2016
Имеется таблица изменений курса валют T_CURRENCY
CREATE TABLE T_CURRENCY
("CODE" VARCHAR2(32),
"DATE_C" DATE,
"VALUE" NUMBER
) TABLESPACE MIRAVILD_DATA;
COMMENT ON TABLE T_CURRENCY IS 'Валюта';
COMMENT ON COLUMN T_CURRENCY.CODE IS 'Код валюты';
COMMENT ON COLUMN T_CURRENCY.DATE_C IS 'Дата изменения курса';
COMMENT ON COLUMN T_CURRENCY.VALUE IS 'Значение курса';
/
(далее…)
Tags:Function, Oracle, PL/SQL, SQL
Posted in Oracle, PL/SQL, SQL | No Comments »