Posts Tagged ‘Oracle’

Отчёт для отдела маркетинга

Четверг, 2 мая, 2019

Имеется база данных по клиентам, имеющая структуру:

Клиенты
ID number  
NAME Varchar2 Наименование
     
Контакты
ID number  
CLIENT_ID number FK CLIENT
C_TYPE number Тип контакта 1-телефон 2-email
C_INFO varchar2 Контакт – телефон либо адрес email
CREATED date Дата внесения в базу
ACTIVE Char(1) Y/N активный или архив
Адреса
ID number  
CLIENT_ID number FK CLIENT
A_TYPE number Тип адреса 1-домашний 2-регистрации 3- фактический
CITY varchar2 Город
STREET varchar2 Улица
HOUSE varchar2 Дом
FLAT varchar2 Квартира
CREATED date Дата внесения в базу
ACTIVE Char(1) Y/N активный или архив

(далее…)

Проектирование структуры БД в формате XML

Понедельник, 5 ноября, 2018

Структура базы данных (SQL):

employee — сотрудник
— id
— headId — его непосредственный руководитель
— firstName — имя
— lastName — фамилия
— salary — размер зарплаты
— departmentId — отдел

department — отдел
— id
— name — название отдела

project — проект
— id
— name — название проекта

role — роль сотрудника в проекте
— id
— projectId
— employeeId
— name — название роли

Пожалуйста, спроектируйте оптимальную структуру в формате XML,
в которой можно представить данные из вышеописанной базы.
(далее…)

Хранение дерева папок

Понедельник, 5 ноября, 2018

Спроектируйте структуру SQL-таблицы для хранения дерева папок.
(далее…)

Департамент и сотрудник

Воскресенье, 21 октября, 2018

Даны две SQL-таблицы:

EMPLOYEE — сотрудник
— EMPLOYEE_ID
— EMPLOYEE_NAME — имя
— lEMPLOYEE_SURNAME — фамилия
— EMPLOYEE_SALARY — размер зарплаты
— DEPARTMENT_ID — отдел

DEPARTMENT — отдел
— DEPARTMENT_ID
— DEPARTMENT_NAME — название отдела

Напишите запросы к ним, которые будут выводить:

  1. Список имён и фамилий всех сотрудников с названиями отделов, к которым каждый из них привязан
  2. Список отделов, к которым привязано более двух сотрудников

(далее…)

Первые 10 строк

Воскресенье, 21 октября, 2018

Есть таблица с уникальным полем «ID». Вывести первые 10 строк (по возрастанию ID). Не использовать запросы типа «SELECT TOP 10».
(далее…)

XML

Суббота, 6 октября, 2018

Имеется

xmltype('
<root>
  <row>
    <col>v11</col>
    <col>v12</col>
    <col>v13</col>
    <col>v14</col>
  </row>
  <row>
    <col>v21</col>
    <col>v22</col>
    <col>v23</col>
    <col>v24</col>
  </row>
</root>')

Необходимо:
а) Получить выборку

C1   C2   C3   C4

—- —- —- —-

v11  v12  v13  v14

v21  v22  v23  v24

Условия: количество узлов row может варьироваться, col всегда статично = 4 шт в пределах row.
(далее…)

Использование pipelined функции

Суббота, 29 сентября, 2018

Имеется таблица dept со следующей структурой:

Name   Type         Nullable Default Comments 
------ ------------ -------- ------- -------- 
DEPTNO NUMBER                                 
DNAME  VARCHAR2(14) Y                         
LOC    VARCHAR2(13) Y

Необходимо реализовать функцию PL/SQL которая будет возвращать выборку из таблицы dept заданную минимальным и максимальным значением поля DEPTNO. Реализуемая функция должна использовать метод pipelined.
(далее…)

Регулярные выражения

Суббота, 29 сентября, 2018

Задана строка ‘1,2,3,4’, необходимо, используя регулярные выражения в запросе получить результат:
C1 C2 C3 C4
— — — —
1 2 3 4
(далее…)

Коллекции

Суббота, 29 сентября, 2018

Имеется декларация типа:

CREATE OR REPLACE TYPE TNUM as table of number;

Необходимо написать реализацию функции, возвращающая в качестве результата заполненный массив, имеющий тип TNUM с значениями от 1…1000
(далее…)

Задвоение данных

Суббота, 29 сентября, 2018

Имеется таблица без первичного ключа. Известно, что в таблице имеется задвоение данных. Необходимо удалить дубликаты из таблицы.

create table t (a number, b number);

Пример данных:
a b
1 1
2 2
2 2
3 3
3 3
3 3
Требуемый результат:
a b
1 1
2 2
3 3
Вариант решения:

delete from t
 where rowid not in (select max(rowid) from t group by t.a, t.b);