Форум сайта python.su
Всем привет, парюсь.
Хочу вставить данные динамически через f примерно вот так:
#sql_insert = """Insert into ANTON.DIM_SETS (DATE_ID,DAY_IN_WEEK_NUMBER,DAY_IN_MONTH_NUMBER,DAY_NAME,WEEKDAY_FLAG,WEEK_IN_YEAR_NUMBER,MONTH_IN_YEAR_NUMBER,MONTH_NAME,QUARTER_NUMBER,YEAR_NUMBER)values ((2001-01-01, 'YYYY-MM-DD'), 1, 1, "D", "D", 3, 4, "F", 3, 4)"""
# data = [(f'{date_id}, {dinweeknum + 1}, {dinmonthnumber}, {dayname}, {dayflag}, {wnum}, {mnum}, {mname}, {quarter}, {yeardate}')]
# sql_insert = """INSERT INTO DIM_DATES VALUES (f'TO_DATE('{date_id}', 'YYYY-MM-DD'), {dinweeknum + 1}, {dinmonthnumber}, {dayname}, {dayflag}, {wnum}, {mnum}, {mname}, {quarter}, {yeardate}')"""
Офлайн
Не используй f'' - это глупость, ставшая модной на хайпе. Используй str.format(), она не занимает имена в программе.
Пример
>>> queryfmt = """INSERT INTO {table} VALUES ({one}, {two}, {three}, '{string}');""" >>> >>> query = queryfmt.format(table='tab', one='1', two='2', three='3', string='text') >>> print(query) INSERT INTO tab VALUES (1, 2, 3, 'text'); >>>
Отредактировано py.user.next (Апрель 7, 2021 21:15:20)
Офлайн