Я столкнулся с подобной ошибкой, пытаясь выполнить in-DB_Write только одной записи в базе данных (не удалось найти функцию преобразования из неизвестного в символьную).Мой инструмент in-DB_Write получает свои данные непосредственно из инструмента in-DB_Connect с пользовательским запросом.Я использую драйвер загрузки Redshift Bulk для своих записей (я не вижу способа настроить конкретный инструмент in-DB_Write для использования обычного драйвера).Драйвер массовой загрузки использует команду COPY для загрузки с S3.
После прочтения вашего поста я подозревал, что инструмент in-DB_Write предполагает, что первая строка является строкой заголовка, а фактические данные начинаются со 2-й строки,Так что я сделал объединение точно такого же SQL в моем in-DB_Connect, и это сработало.
В итоге, это не удалось:
Select Coalesce(Max(etl_process_control.process_id), 0) + 1 as process_id
, 1 as job_id
, getdate() as process_start_dttm
, to_timestamp('1899-12-31 00:00:00','YYYY-MM-DD HH24:MI:SS') as process_end_dttm
, 'I' as process_status_cd
, 'In-Progress' as process_status_desc
, null as process_error_rsn
, -999 as rows_updated
, -999 as rows_inserted
, -999 as rows_deleted
, -999 as rows_failed
From etl_process_control
Но это работает:
Select Coalesce(Max(etl_process_control.process_id), 0) + 1 as process_id
, 1 as job_id
, getdate() as process_start_dttm
, to_timestamp('1899-12-31 00:00:00','YYYY-MM-DD HH24:MI:SS') as process_end_dttm
, 'I' as process_status_cd
, 'In-Progress' as process_status_desc
, null as process_error_rsn
, -999 as rows_updated
, -999 as rows_inserted
, -999 as rows_deleted
, -999 as rows_failed
From etl_process_control
union
Select Coalesce(Max(etl_process_control.process_id), 0) + 1 as process_id
, 1 as job_id
, getdate() as process_start_dttm
, to_timestamp('1899-12-31 00:00:00','YYYY-MM-DD HH24:MI:SS') as process_end_dttm
, 'I' as process_status_cd
, 'In-Progress' as process_status_desc
, null as process_error_rsn
, -999 as rows_updated
, -999 as rows_inserted
, -999 as rows_deleted
, -999 as rows_failed
From etl_process_control
Наконец, вы заметите, что я не использую объединение ALL, поэтому вышеприведенный запрос по существу возвращает только одну строку .... но каким-то образом это работает.Это не идеальное решение, но обходит ошибку.