Алтай
UPSERT в БД Oracle (Python, SQLAlchemy)
Всем привет. Я дата-инженер и достаточно долгое время работал с БД PostgreSQL. Сменив работу я столкнулся с Oracle и его особенностями. Например, с отсутствием такой удобной конструкции при записи данных, как INSERT... ON CONFLICT DO UPDATE. Есть ее аналог, но чтобы понять объяснение из документации, нужно напрягать мозг. Напишу в том виде, в котором это было бы понятно мне, когда я впервые это увидел. Может, пригодится еще кому-то. Для записи я использую Python и SQLAlchemy, но программного кода здесь не будет, только SQL в нужном формате. Итак, вместо "INSERT … ON CONFLICT DO... "в Oracle используется MERGE...
Печеньки от Oracle. Экспорт/импорт с помощью XML
Перенос данных из систему 1 в систему 2 несколько необычным образом. Предположим, в системе 1 есть некоторые данные, которые нам надо перенести в систему 2. Предположим, они доступны с использованием следующего запроса: select arg, func from system1.square_test
;
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100 Чтоб перенести их традиционным способом, нужно записать DDL создания принимающей таблицы (если ее нет) и скрипт DML для всех строк данных. Что-то типа: create table system2.square_test (arg number, func number);
insert into system2...