Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2021 00:58:51

Anton13
Зарегистрирован: 2021-03-27
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вставить значения в строку инсерта в оракл?

Всем привет, парюсь.

Хочу вставить данные динамически через 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}')"""
Ничего не получается. Прошу помочь.

Офлайн

#2 Апрель 7, 2021 21:14:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Как вставить значения в строку инсерта в оракл?

Не используй 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version