Вставка разъема Snowflake Python не принимает переменные - PullRequest
1 голос
/ 02 апреля 2020

Используя снежный коннектор, я пытаюсь вставить запись в таблицу.

В снежинке do c они показали примеры с жестко закодированными строками, но когда я пытаюсь использовать мои переменные, это не работает. Пожалуйста, предложите, как использовать переменные в этом случае.

conn.cursor().execute(
            "INSERT INTO cm.crawling_metrics(FEED_DATE,COMP_NAME,REFRESH_TYPE,CRAWL_INPUT,CRAWL_SUCCESS) VALUES " +
            "(score_creation_date,compName,sRefreshType,mp_sku_count,comp_sku_count)"

Я получаю ошибку ниже

Snowke.connector.errors.ProgrammingError: 000904 (42000): SQL компиляция ошибка: строка ошибки 1 в позиции 100, недопустимый идентификатор 'SCORE_CREATION_DATE'

ПРИМЕЧАНИЕ : В приведенном выше коде, если я жестко кодирую String вместо переменных, он работает.

Пожалуйста, предложите, какой правильный путь?

1 Ответ

2 голосов
/ 02 апреля 2020

Вам необходимо использовать интерполяцию / форматирование строк для своего кода, чтобы использовать их в качестве фактических переменных:

conn.cursor().execute(
    "INSERT INTO cm.crawling_metrics (FEED_DATE, COMP_NAME, REFRESH_TYPE, CRAWL_INPUT, CRAWL_SUCCESS) VALUES " +
    f"('{score_creation_date}', '{compName}', '{sRefreshType}', '{mp_sku_count}', '{comp_sku_count}')"
)
...