CSS for code highlight

16 октября 2022

PL/SQL в операторе WITH (Oracle)

Случайно наткнулся на статью про WITH и обнаружил что он поддерживает вставку PL/SQL функций и процедур, да, раньше такого не знал. Эта возможность появилась с версии Oracle 12c.

01 сентября 2022

05 августа 2022

Установка модуля DBD::Oracle на Perl5 в Linux Mint 18.3

Для подключения к БД Oracle из скриптов потребовалось установить DBD::Oracle для Perl5 на Linux Mint 18.3. Методом познания ошибок в поисковике, через тернии к звездам, так сказать, получилось установить модуль. В итоге хочу поделиться опытом, может кому-то пригодится.

30 июля 2022

Установка Python3.7.9 из исходников на Linux Mint 18.3 (Ubuntu 16)

Предыстория - для пакета dadata (который планировал использовать для одного проекта) требуется Python 3.7, т.к. это минимально поддерживаемая версия. Но в моей системе Linux Mint 18.3 стоит Python 3.5 и это последняя доступная в репозитариях версия, а каких-то более вменяемых репозитариев найти не удалось, поэтому будем ставить "вручную" из исходников.

29 июля 2022

Установка Oracle InstantClient 11.2 на Linux Mint 18 / Ubuntu 16

Понадобился Oracle InstantClient для скриптов на Python/Perl, да и вообще чтобы был, т.к. со своего ноутбука запускал SQL/PLSQL скрипты в "самосборном lite" клиенте Oracle 9i для Windows через Wine. Извращение подумаете Вы? Но работает! :)

28 июля 2022

Установка архиваторов Rar, 7Zip, Lzma на древний RedHat Enterprise Linux 4

В настоящее время найти какие либо пакеты для RHEL 4 довольно трудно, но все же кое что еще удается на rpm.pbone.net, например, и некоторых других ресурсах. Ниже список пакетов которые удалось найти и которые ставятся на систему.

27 июля 2022

Ошибка - unzip: cannot find or open somefile.zip

Потребовалось распаковать довольно большие файлы в zip формате (9-35Гб) на древнем RHEL 4 (RedHat Enterprise Linux), но штатный UnZip 5.51 не справился, выдает ошибку - "unzip:  cannot find or open somefile.zip". В mc так же не открывается файл, с ошибкой - "inconsistent extfs archive unzip non-zero exit status". После гугления оказалось, что такая проблема существует, но решения я не нашел, может плохо искал конечно, но на такую древнюю систему трудно что-то вообще найти сейчас.

Решил попробовать другие архиваторы - Rar и т.п.

Rar - под Linux с задачей не справился, т.к. не поддерживает другие форматы, кроме собственно rar

7Zip - на ура распаковал все необходимые файлы, которые не смог UnZip

30 июня 2022

Тихий звук в Bluetooth гарнитуре на максимальной громкости

С каких-то пор на моем Linux Mint 18.3 на ноутбуке появилась проблема - довольно тихий звук, даже на максимальной громкости при воспроизведении на Bluetooth гарнитуру, конкретно Bluetooth приемник, подключенный к колонкам.

02 июня 2022

Скрипт восстановления базы данных Oracle на определенное время

Иногда приходится восстанавливать базу данных на какое-то конкретное время, делать это вручную весьма рутинно и скучно, поэтому решил таки автоматизировать и написать скриптик. Сразу скажу что rman'ом не пользуюсь, т.к. ну не dba я, потому просто и не довелось его освоить (буду исправляться! :)), на все нет времени, много других задач. Ежедневно делаю холодные копии и пакую архивлоги, обычно хватает холодных копий, но иногда все же требуется восстанавливать на конкретное время, поэтому восстанавливаю требуемую холодную копию/архивлоги/контроллы и используя sqlplus накатываю архивлоги. Скрипт аналогично сам находит требуемые копии, распаковывает, накатывает архивлоги, теперь вместо хх часов, буду тратить порядка 2 минут на запуск скрипта с нужными параметрами, ну если все резервные копии есть и хранятся в необходимом порядке, иначе скрипт выдаст ошибку и придется продолжить вручную...

20 мая 2022

Ручное обновление базы данных часовых поясов в старых дистрибутивах Linux CentOS/RHEL

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

09 марта 2022

Как загрузить все сообщения в веб-интерфейсе Yandex почта

Понадобилось загрузить все найденные по поиску сообщения (имеется ввиду - список), чтобы сделать некую выгрузку-отчет, но сообщений несколько тысяч и тыкать на кнопку "Еще письма" как-то ...

06 марта 2022

Преобразование HTML в CSV или обработка HTML таблиц в Bash-2

Продолжение предыдущей статьи... Конвертируем - Очищаем HTML до состояния чистого CSV, при помощи sed:

sed -e '/\(html\|title\|body\|table\)/d' -e 's/ \{2,\}//g' report.html | \
  sed ':a;N;$!ba;s#\s*</td>\s*</tr>\s*<tr>\s*<td>\s*#\n#g' | \
  sed ':b;N;$!bb;s#\s*</td>\s*<td>\s*#;#g' | \
  sed '/\(tr>\|<td\|td>\)/d' | \
  iconv -f windows-1251 -t utf-8

Для суммирования значений по всем файлам конкретно в моем случае достаточно ...

Преобразование HTML в CSV или обработка HTML таблиц в Bash

Потребовалось обработать уже готовые отчеты в HTML файлах, а именно - из каждого файла-отчета взять конкретную ячейку таблицы и просуммировать, своего рода - SUM() и GROUP BY (в SQL). Сначала думал написать скрипт например на Python, который бы парсил HTML и т.д. и т.п., но...

29 января 2022

Библиотеки для работы с Excel в Go

Нашел такие библиотеки:
github.com/tealeg/xlsx v1.0.5 (Go 1.12) требуется для библиотеки github.com/ivahaev/go-xlsx-templater (Go 1.13), о пакете от автора. Но с минимальными "допиливаниями" одного системного пакета все собирается и работает на Go 1.10.8 (об этом позже...)
github.com/qax-os/excelize v1.4.0 работает в Go с версии 1.8, а значит и на последней для XP - 1.10.8
github.com/extrame/xls для чтения xls файлов
github.com/unidoc/unioffice (Коммерческая)

Использование старых версий библиотек в Go

Понадобилось использовать Go версии 1.10 , т.к. это самая последняя, которая работает в Windows XP (см.), но вот все доступные библиотеки для работы с XLSX файлами без самого офиса требуют либо версии 1.12 либо 1.15. После долгих копаний в интернете таки нашел, что старая версия Excelize v1.4.1 работает в Go от 1.8 и выше, нашел ее в архиве на гитхабе - Excelize v1.4.1

Далее просто - качаем, распаковывем, переносим в папку с библиотеками, ставим, компилируем, профит :)
PS: Сохранил на всякий случай в вебархив v1.4.0 / v1.4.1.
# скачиваем из архива и распаковываем
wget -O excelize-1.4.1.zip https://github.com/qax-os/excelize/archive/refs/tags/v1.4.1.zip
unzip excelize-1.4.1.zip

# на всякий случай чистим, создаем папку в исходниках библиотек
rm -vrf ~/go/src/github.com/qax-os/excelize
mkdir -p ~/go/src/github.com/qax-os

# перемещаем распакованную библиотеку в иходники и собираем ее
mv excelize-1.4.1 ~/go/src/github.com/qax-os/excelize
go get -v github.com/qax-os/excelize

# компилируем файл
go build -o test-excelize-1.4.1 test-excelize-1.4.1.go
GOOS=windows GOARCH=386 go build -o test-excelize-1.4.1.exe test-excelize-1.4.1.go

Последнее...

CURL вместо Postman / Swagger