Mock BEGIN, COMMIT, ROLLBACK
Была произведена попытка работать с пикодатой по PG протоколу через psychopg2, которая сразу же закончилась с ошибками парсинга BEGIN.
import psycopg2
import random
from datetime import datetime
# Параметры подключения к базе данных
conn_params = {
"dbname": "",
"user": "postgres",
"password": "P@ssw0rd",
"host": "192.168.11.23"
}
# Создание подключения
conn = psycopg2.connect(**conn_params)
cur = conn.cursor()
# SQL-запрос для вставки данных
insert_query = """
INSERT INTO card_balance (card_sk, master_account_contract_sk, eod_card_balance_amount_curr, eod_card_balance_amount_rub, eod_card_blocked_amount_curr, eod_card_blocked_amount_rub, currency_code_alpha, currency_code_num, src_system, abs_system, effective_from_dttm, effective_to_dttm, src_load_dttm, load_dttm, part_yyyy_mm_dd, src_table_name)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
"""
# Данные для вставки
data = (
1,
2,
random.random() * 100000,
random.random() * 100000,
random.random() * 5000,
random.random() * 5000,
''.join([chr(65 + random.randint(0, 25)) for _ in range(3)]),
'{:03}'.format(random.randint(0, 999)),
'system1' if random.random() > 0.5 else 'system2',
'abs1' if random.random() > 0.5 else 'abs2',
datetime.now(),
datetime.now() ,
datetime.now(),
datetime.now(),
datetime.now().strftime('%Y-%m-%d'),
'tbl'
)
# Исполнение запроса
cur.execute(insert_query, data)
# Подтверждение изменений и закрытие соединения
conn.commit()
cur.close()
conn.close()
print("Строка успешно добавлена в таблицу.")