【发布时间】:2020-08-12 16:54:55
【问题描述】:
错误信息: 外部表中“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 分配给该列的数据类型。
【问题讨论】:
-
你能在视图中明确地投射它吗?
CAST(REPLACE((ISNULL([AddressLine1],'')),',',' ') AS VARCHAR(255)) as [AddressLine1]? -
我可以!这样就解决了。非常感谢 JNevill。惊人的。谢谢。
-
嗨@Billson3000,您可以考虑将其标记为答案。这对其他社区成员可能是有益的。再次感谢 JNevill。