U-SQL Ошибка внешней таблицы: «Невозможно привести объект типа« System.DBNull »к типу« System.Type ».» - PullRequest
0 голосов
/ 15 мая 2019

Мне не удается создать внешние таблицы для двух конкретных таблиц из базы данных SQL Azure,

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

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'.'

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Я решил это, обойдя внешнюю таблицу: Я создал представление , которое выбирается из внешнего набора строк с использованием EXECUTE

CREATE VIEW IF NOT EXISTS [Data].[Devices]
AS 
SELECT Id FROM EXTERNAL SqlDbSource 
EXECUTE "SELECT Id FROM [Data].[Devices]";

Это заставило скрипт полностью игнорировать столбец типа географии, который в настоящее время не поддерживается как REMOTEABLE_TYPE для источников данных в U-SQL.

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

Пожалуйста, посмотрите мой ответ в другой ветке, открытой вами. Чтобы добавить к этому, я также рекомендую вам посмотреть, как создать таблицу с помощью запроса. В запросе вы должны иметь возможность использовать «экстракторы» в запросе для создания таблиц. Чтобы узнать больше об экстракторах, ознакомьтесь с этим документом.

Надеюсь, это поможет.

...