**** 04:04:32 TPT10508: ошибка 3857 СУБД: не удается использовать значение (или параметр макроса) для сопоставления с »

#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 .