TERADATA: нежелательные пробелы, созданные при обновлении строки - PullRequest
0 голосов
/ 23 мая 2019

У меня есть таблица с именем UDB.feed_counter (feed_name VARCHAR (255), feed_counter VARCHAR (255)), которая отслеживает наибольшее число из некоторой другой таблицы:
Image1

при обновлении номера (feed_counter) я использую этот запрос:

update UDB.feed_counter from(select max(distinct LFD_NR) AS LFD_NR from DWH.ART) A SET feed_counter=A.LFD_NR where feed_name='devicecataloglocal_art';

По какой-то причине, когда я обновляю feed_counter с этим запросом, я получаю несколько пробелов перед числом

Image2

Почему это происходит ??

Когда я делаю это: select max(distinct CAST(LFD_NR AS INTEGER)) from DWH.ART; Я не получаю никаких пробелов

Может кто-нибудь объяснить?

Дополнительно я должен добавить, что LFD_NR из DWH.ART - это строка, содержащая число.

1 Ответ

0 голосов
/ 23 мая 2019

Как правило, когда значения столбцов VARCHAR обновляются из значений столбцов CHAR, целевые столбцы VARCHAR заполняются точно таким же значением, что и значение столбца CHAR из источника, путем удаления конечных пробелов.Но никакие пробелы не добавляются впереди.

Думаю, проблема в столбце LFD_NR таблицы DWH.ART.Попробуйте выбрать значения из DWH.ART без приведения к типу INTEGER:

выберите максимум (отличный LFD_NR) из DWH.ART;

Есть вероятность, что столбец LFD_NR имеет пробелыперед значениями.

...