Сегодня в СУБД Oracle есть несколько типов данных для хранения дат и времени. Самый старый из них - тип DATE - совершенно точно был еще в Oracle 7 (с более ранними версиями СУБД я не работал). Тогда ввести значение типа DATE можно было только с помощью функции to_date. В версии 9 появился литерал для значений типа DATE (а также новые типы для дат и времени TIMESTAMP, TIMESTAMP WITH LOCAL TIME ZONE и TIMESTAMP WITH TIME ZONE). Рассмотрим сегодня некоторые особенности типа DATE.
вторник, 18 апреля 2017 г.
Нулевой год, юлианские дни и наследие папы Григория XIII
четверг, 30 марта 2017 г.
Статистические функции в Oracle 11g
Рассмотрим на примерах возможности статистического анализа и статистические функции в Oracle 11g.
воскресенье, 19 февраля 2017 г.
Передача изменений между БД: подход в духе KISS
В БД SOURCE в таблице itemz ведется некий справочник. Время от времени в справочник добавляются новые строки и изменяются существующие. Возможно, строки даже иногда удаляются. В данных этого справочника нуждается БД DEST, причем контракт состоит в передаче из БД SOURCE всех изменений справочника. И как же организована передача изменений БД SOURCE в БД DEST? А вот так.
понедельник, 30 января 2017 г.
Про отношения с таблицами. C примерами на SQL
Отношение есть подмножество декартова произведения множеств, элементы которого - кортежи, составленные из элементов перемножаемых множеств. N-арное отношение есть подмножество декартова произведения N множеств, состоящее из кортежей длины N. В частности, бинарное отношение есть множество пар, или кортежей длины 2, где первый элемент принадлежит первому, а второй - второму из двух перемножаемых множеств.
Например, для двух множеств
A = {1, 2, 3}
B = {'Стакан', 'Лимон'}
декартово произведение есть
A x B = {
(1, 'Стакан'),
(1, 'Лимон'),
(2, 'Стакан'),
(2, 'Лимон'),
(3, 'Стакан'),
(3, 'Лимон')
}
вторник, 20 декабря 2016 г.
Два кейса для ora_rowscn в Oracle 11g
В СУБД Oracle системный номер изменения (SCN, system change number) есть непрерывно возрастающее число. Каждая транзакция, и даже каждое чтение этого номера из БД увеличивает его:
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
7211772580
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
7211772583
Начиная с версии 10 в таблицах БД Oracle появился псевдостолбец ora_rowscn. Этот псевдостолбец содержит SCN, связанный с последним изменением соответствующей строки. Посмотрим на него поближе.