Тип данных столбца AddressLine1 во внешней таблице отличается от типа данных столбца. - PullRequest
1 голос
/ 28 апреля 2020

Сообщение об ошибке: тип данных столбца 'AddressLine1' во внешней таблице отличается от типа данных столбца в базовой автономной или сегментированной таблице, представленной во внешнем источнике.

отображается, когда я попробуйте запросить внешнюю таблицу данных в Azure SQL. Таблица данных:

CREATE EXTERNAL TABLE ExternalTable
(
[LastName] nvarchar (255)
,[FirstName] nvarchar (255)
,[AddressLine1] varchar(max)
) WITH (DATA_SOURCE = Externaldb)

Базовые данные на БД взяты из представления, а не из исходной таблицы. Это то, что вызывает мою проблему. Поле AddressLine1 в представлении фактически:

REPLACE((ISNULL([AddressLine1],'')),',',' ') as [AddressLine1]

, а не исходные данные.

Я пробовал следующие типы данных в сценарии создания внешней таблицы, но ни один из них не работает:

nvarchar(255)
nvarchar(max)
varchar(255)
varchar(max)

Я не знаю, как найти тип данных, который Azure SQL назначает этому столбцу в представлении.

1 Ответ

1 голос
/ 29 апреля 2020

Спасибо за ответ @ JNevill в комментарии, это помогло @ Billson3000 исправить это:

Привести поле AddressLine1 в представлении в представлении:

CAST(REPLACE((ISNULL([AddressLine1],'')),',',' ') AS VARCHAR(255)) as [AddressLine1]

Это устранило проблему.

Я помогаю им опубликовать это как ответ, это может быть полезно для других участников сообщества.

Спасибо @JNevill еще раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...