#sql #teradata
#sql #teradata
Вопрос:
**** 04:04:32 TPT10508: ошибка 3857 СУБД: не удается использовать значение (или параметр макроса) для сопоставления с ‘<имя_столбца>’.
сталкиваясь с этой проблемой при выполнении tpt для загрузки данных из csv в Teradata DB. Не могли бы вы помочь мне в решении этой проблемы.
простая логика приведения используется для преобразования типа данных из Varchar в десятичную и временную метку (0). и если я жестко закодирую значение, как будто (cast(20.0) as decimal(12,2) )
оно работает нормально. Случай сбоя cast(column_nm) as decimal(12,2)
.
Комментарии:
1. Можете ли вы поделиться этой частью из своего скрипта TPT? Обычно нет необходимости в явном приведении, это делается неявно, чтобы соответствовать целевому столбцу.
2. , ПРИВЕДЕНИЕ (:actvt_amt как ДЕСЯТИЧНОЕ число (12,2)) , ПРИВЕДЕНИЕ (ПРИВЕДЕНИЕ (:actvt_eff_dt как временная метка (0) В ФОРМАТЕ «ММ / ДД / ГГГГБхх: mi: ss») в формате даты «ГГГГ-ММ-ДД»), ПРИВЕДЕНИЕ (:src_load_dt_tm КАК временная метка (0) В ФОРМАТЕ «ММ/ДД / ГГГГ: mi: ss»), ПРИВЕДЕНИЕ (:src_updt_dt_tm КАК временная метка (0) В ФОРМАТЕ «ММ / ДД / ГГГГ: mi: ss»)
3. в общем, нет необходимости в явном приведении, это делается неявно, чтобы соответствовать целевому столбцу — это действительно сработало для меня. Спасибо
4. В
APPLY
предложении TPT единственным допустимым использованиемCAST
является присвоение типа данных буквальномуNULL
значению. Вы можете, конечно, использоватьCAST
внутри (заключенного в кавычки) оператора SQL, предоставленного в качестве атрибута operator .