Мой пост Информация 2022 года на момент написания казался мне почти исчерпывающим. Однако, тема нуждается в дальнейшем раскрытии – из-за многозначности слова "информация". Поэтому попробую закрепить разные термины за разными значениями и посмотреть, как разные значения взаимодействуют между собой.
воскресенье, 11 февраля 2024 г.
среда, 13 декабря 2023 г.
Имитация ассоциативных массивов в PL/pgSQL
В языке PL/pgSQL нет ассоциативных массивов, которые позволяют получить значение по ключу. И это досадно. Но ладно.
Первый способ имитировать ассоциативный массив
Создайте два массива, упорядоченных по одному и тому же критерию. Первый из них должен содержать ключи, второй - значения. После этого для получения значения по ключу нужно
- найти индекс элемента первого массива, содержащего значение ключа,
- по найденому индексу получить значение из второго массива.
пятница, 11 августа 2023 г.
Десять лет спустя, или Установка PostgreSQL на Windows
10 лет назад я написал первый пост в мой блог – про установку Oracle XE 11gR2 на Windows. Сколько воды утекло...
В 2022 комания Oracle удалила мой аккаунт, которым я пользовался лет двадцать, после того как Россия попала под экспортные ограничения. (Как в том анекдоте, где опытный кадровик помогает молодому коллеге справиться к горой резюме от кандидатов, которые тому нужно просмотреть. Половину резюме – сразу в мусорную корзину со словами "Лузеры нам не нужны!") Но жизнь продолжается.
четверг, 25 мая 2023 г.
Неизвестное vs Отсутствующее, или Двуликий NULL
Когда-то я уже писал о "многоликом NULL", см. Часть I и Часть II. Сегодняшний пост в дополнение и в развитие этой темы.
Я неоднократно встречал утверждение, что NULL в SQL нужно понимать как "неизвестно что". С этим согласуется поведение операторов сравнения при сравнении двух NULL (команды выполнены в PostgreSQL 15):
select 1
where null = null
or null != null
or null < null
or null <= null
or null >= null
or null > null
;
no rows
понедельник, 24 апреля 2023 г.
dbang! Утилиты для работы с БД
Написанные на Python, утилиты dbang позволяют существенно сэкономить усилия при решении типичных задач, связанных с БД:
ddiff.py- выполняет запросы к двум БД и формирует отчет о расхождениях;dtest.py- выполняет запросы к БД и формирует отчет о найденных проблемах;dget.py- выгружает данные из БД в файлыcsv,xlsxилиhtml;dput.py- загружает данные из файловcsvилиxlsxв таблицы БД;hedwig.py- на основе файлов создает и отправляет е-мейл.
Утилиты могут работать с СУБД Oracle, PostgreSQL, SQLite и MySQL.