Posts Tagged ‘Oracle’

Моделирование. Шарики.

Воскресенье, 3 июля, 2016

В базе данных необходимо хранить информацию о шариках (номер, диаметр, цвет). Номер шарика должен быть уникальным. В качестве первичного ключа использовать номер шарика запрещено. Редактирование номера шарика запрещено. Номер шарика должен формироваться минимальным из незанятых других шариков. Шарики могут быть связанны между собой веревочкой. Между любыми двумя шариками не может быть две веревочки. Шарик НЕ может быть связан сам с собой. Шарики не могут быть связаны, если целая часть от деления суммы номеров шариков на остаток от деления номеров кратно 3.

Логическая модель

Логическая модель

(далее…)

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

Воскресенье, 26 июня, 2016

Необходимо написать регулярное выражение + код (или псевдокод) для извлечения нужных значений.
(далее…)

Вопрос

Воскресенье, 19 июня, 2016

Как бы вы организовали удаление записей из дочерней таблицы, при удалении записей из родительской таблицы, на которые они ссылаются?
(далее…)

Моделирование. Клиент, заказ и товар

Суббота, 18 июня, 2016
Логическая модель

Логическая модель

Что, в этой модели, не так?

(далее…)

Курсор по таблице

Понедельник, 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 - не обработан)';
/

(далее…)

Интересные вопросы про Oracle

Воскресенье, 12 июня, 2016
  1. Что будет, если попытаться вставить запись в DUAL?
  2. Задача – выгрузить 10 миллионов записей из таблицы в плоский файл. Как бы вы это сделали?
  3. Сколькими способами вы можете на чистом SQL получить ровно 56 строк (неважно какого содержания)? Какой из них быстрее?
  4. Что такое транспонирование строк? Сколькими разными способами вы сможете это проделать?

(далее…)

Справочник стран

Воскресенье, 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 - активна)';
/

(далее…)

Курс валюты

Воскресенье, 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 'Значение курса';
/

(далее…)

Дублирующиеся записи

Воскресенье, 5 июня, 2016

При выполнении задачи – с мигрировать данные по адресам для контрактов, необходимо произвести проверку на наличие дублированных записей. Известно, что у одного контракта может быть только один адрес.
(далее…)

Задачка на SQL

Воскресенье, 29 мая, 2016

Существует таблица, содержащая статусы доставки сообщений:

CREATE TABLE SMS_MESSAGE_DLV_STATUS 
(sms_message_id NUMBER(20),
	dlv_status VARCHAR2(20),
	dlv_status_at TIMESTAMP
) TABLESPACE MIRAVILD_DATA;
 
COMMENT ON TABLE SMS_MESSAGE_DLV_STATUS IS 'Статус сообщения';
COMMENT ON COLUMN SMS_MESSAGE_DLV_STATUS.sms_message_id IS 'Идентификатор статуса';
COMMENT ON COLUMN SMS_MESSAGE_DLV_STATUS.dlv_status IS 'Статус доставки сообщения';
COMMENT ON COLUMN SMS_MESSAGE_DLV_STATUS.dlv_status_at IS 'Дата сообщения';

CREATE UNIQUE INDEX "U_IDX_SMS_MESSAGE_STATUS" ON SMS_MESSAGE_DLV_STATUS (sms_message_id) TABLESPACE MIRAVILD_INDEX;

ALTER TABLE SMS_MESSAGE_DLV_STATUS ADD CONSTRAINT "PK_SMS_MESSAGE_STATUS" PRIMARY KEY (sms_message_id)
  USING INDEX "U_IDX_SMS_MESSAGE_STATUS" ENABLE VALIDATE;

ALTER TABLE SMS_MESSAGE_DLV_STATUS MODIFY (dlv_status CONSTRAINT SMS_MESSAGE_STATUS_NN NOT NULL ENABLE);
ALTER TABLE SMS_MESSAGE_DLV_STATUS MODIFY (dlv_status_at CONSTRAINT SMS_MESSAGE_AT_NN NOT NULL ENABLE);
/

(далее…)