我无法从Azure SQL DB创建到两个特定表的外部表,
我已经创建了几个没有问题的外部表。 我可以看到失败的外部表和成功的外部表之间的唯一区别是,失败的表包含地理位置类型列,因此我认为这是问题所在,但我不确定。
CREATE EXTERNAL TABLE IF NOT EXISTS [Data].[Devices]
(
[Id] int
)
FROM SqlDbSource LOCATION "[Data].[Devices]";
Failed to connect to data source: 'SqlDbSource', with error(s): 'Unable to cast object of type 'System.DBNull' to type 'System.Type'.'
答案 0 :(得分:1)
我通过对外部表进行变通来解决了该问题: 我使用EXECUTE创建了一个view的select from external rowset
CREATE VIEW IF NOT EXISTS [Data].[Devices]
AS
SELECT Id FROM EXTERNAL SqlDbSource
EXECUTE "SELECT Id FROM [Data].[Devices]";
这使脚本完全忽略了地理位置类型列,U-SQL目前不支持该列为REMOTEABLE_TYPE for data sources。
答案 1 :(得分:0)
请查看我在您打开的另一个线程上的回答。除此之外,我还建议您看看如何使用查询创建表。在查询中,您应该能够在查询中使用“提取器”来创建表。要了解有关提取器的更多信息,请查看此文档。
希望这会有所帮助。