Добавление столбца со значением по умолчанию в snowflake, но копирование данных(копирование из текстового файла, содержащего необходимые столбцы) в ADF завершается ошибкой

#azure #snowflake-cloud-data-platform #snowflake-schema

Вопрос:

У меня есть таблица с 4 столбцами (СЦЕНАРИЙ, ГОД, ПЕРИОД, INSERT_DTS). Я создал таблицу, как показано ниже:

 create or replace TABLE TEST_DB.STG_TEST.HFM_STG (
    SCENARIO VARCHAR(50),
    YEAR VARCHAR(4),
    PERIOD VARCHAR(3),
    INSERT_DTS TIMESTAMP DEFUALT CURRENT_TIMEstamp()
);
 

когда я попытался скопировать данные из текстового файла в Snowflake с помощью операции копирования, я получил следующее сообщение об ошибке: «Количество столбцов в файле (3) не совпадает с количеством столбцов в соответствующей таблице (4)».

Любое решение для устранения этой проблемы, поскольку столбец INSERT_DTS должен быть значением по умолчанию ?

Ответ №1:

Вам нужно использовать ключевое слово ПО умолчанию для значения во ВСТАВКЕ:

 create or replace table XYZ (x varchar(200), y varchar(200), z varchar(200), t timestamp default current_timestamp());
insert into XYZ values ('X', 'Y', 'Z', DEFAULT);
SELECT * FROM XYZ;
 

введите описание изображения здесь

Смотрите здесь

Для КОПИРОВАНИЯ В вы можете сделать что-то вроде этого:

 COPY INTO XYZ (x, y, z) FROM (SELECT $1, $2, $3 FROM @~/worksheet_data/metadata);
 

введите описание изображения здесь

Вышеизложенное вставит в столбец t значение по умолчанию.