2015-10-15 3 views
-1

Teradata определяет некоторые специальные символы, такие как 0D0A'XC для новой строки и т. Д. Но где я могу найти список для всех таких символов? Откуда он?Как Teradata компилирует непечатаемые символы?

Мне нужно знать, как эти символы переводятся. Например. как получить возврат каретки, и т.д.

Я попытался Google, но не смог найти такой список

ответ

0

@Hillary, Teradata не определяет каких-либо специальных символов; они присутствуют во всех Базах данных.

Пример:

CHR(9) = Tab key = '09'XC 
CHR(10) = Enter key = '0A'XC 
CHR(13) = Carriage Return = '0D'XC 

Иногда нам нужно добавить их к нашим данным, а иногда нам нужно убрать их в соответствии с нашими требованиями. Обычно они приходят, когда мы перемещаемся из других баз данных, и когда есть какие-либо изменения в кодовых страницах между двумя системами или выполняются нагрузки на Teradata с использованием какого-либо инструмента ETL или загрузка файла из окон в UNIX или наоборот.

Если ваша исходная таблица содержит символ Юникода, а поле вашей целевой таблицы определено как набор символов латинского алфавита, вы получите вопрос о непереводимых символах.

Ex: Недавно, когда мы делали форму оракула в Teradata, мы обнаружили, что странная проблема, подобная столбцу char, имеет данные типа «G» (пространство и G), и мы думали, что это пространство, но на самом деле это было CHR (0).

Что касается перевода, это зависит от того, нужно ли их удалить или заменить. В основном для этого используются два UDF (я думаю, они доступны после TD 14)

oreplace : Select orepalce(col,CHR(0),'') from table (что я сделал для моей проблемы). translate_chk : TRANSLATE_CHK(‘abc’ USING UNICODE_TO_LATIN)

Наконец-то нет конкретного списка, решить, добавить к вашему обучению и поделиться, как только у вас возникнут проблемы.

Может быть какой-то эксперт Teradata даст вам больше обновления ... :)

+0

'translate_chk' технически не переводит символы. Он сообщает только, может ли определенная строка varchar быть преобразована из одного набора символов в другой без генерации символов ошибки. Если вы хотите перевести, используйте 'translate (varchar_string USING UNICODE_TO LATIN)' где 'UNICODE_TO_LATIN' может любой из строк преобразования, поддерживаемых' translate() '. Если вы хотите принудительно выполнить перевод, даже с непереводимыми символами в строке ввода, используйте «translate (varchar_string USING UNICODE_TO_LATIN WITH ERROR)». Но имейте в виду, что ошибки символов трудно справиться. – xenodevil

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