2016-10-22 4 views
1

Мне нужно использовать функцию с длиной столбца в терадате.teradata: для калибровки литых как длина столбца

говорит, у меня есть таблица со следующими данными,

id | name 
1|dhawal 
2|bhaskar 

мне нужно использовать операцию литого что-то вроде

select cast(name as CHAR(<length of column>) from table 

, как я могу это сделать?

благодаря Dhawal

+0

Должен ли быть фиксированной длины CHAR или VARCHAR нормально? – dnoeth

ответ

0

Вы должны найти длину, глядя на определение таблицы - либо вручную (show table) или написав dynamic SQL, который запрашивает dbc.ColumnsV.

обновление Вы можете найти максимальную длину фактических данных с использованием

select max(length(cast(... as varchar(<large enough value>))) from TABLE 

Но если это для FastExport я думаю casting as varchar(large-enough-value) и постобработки, чтобы удалить данные длины 2-байтовый FastExport включает лучший решение (поскольку экспорт CHAR() приведет к выходному файлу фиксированной длины с большим количеством пробелов в нем).

Возможно, вы уже знаете это, но на всякий случай: Teradata обычно рекомендует переходить на TPT вместо старого fexp.

+0

Мне нужно написать программу в per, которая использует быстрый экспорт для сохранения данных таблицы в виде файла, разделенного на канал. так что его можно загрузить в другую базу данных. , поэтому необходимо использовать операцию литья, чтобы удалить специальные символы, добавленные быстрым экспортом. а также нужно сохранить файловое пространство, так что вам нужно использовать операцию литья с длиной данных столбца – Dhawal

+0

спасибо за ответ, я могу найти длину столбца, но мне нужно найти длину данных в столбце, поэтому можно отнести к этой длине. – Dhawal

+0

@Dhawal см. Обновленный ответ. – Nickolay

Смежные вопросы