Azure синапс - разделитель строк - PullRequest
1 голос
/ 23 марта 2020

У меня есть текстовый файл в следующем формате.

"01 |" "sample" "|" "Test" | "" testing "" | "" 01 "|" "" ".

Я создал внешнюю таблицу в Azure Synapse, установив для параметра формата STRING_DELIMITER значение '"'. Но при обработке файла через sp я получаю приведенную ниже ошибку.

"Не удалось найти разделитель после разделителя строк"

Есть ли какое-либо решение для этого? Любая помощь будет оценена.

С уважением, Sandeep

1 Ответ

0 голосов
/ 23 марта 2020

В моих тестах с этой образцовой строкой кавычки вызывали проблему, потому что они были неравномерными. Было бы лучше создать внешнюю таблицу, игнорируя кавычки, и затем очистить их, например, установить внешний формат файла следующим образом:

CREATE EXTERNAL FILE FORMAT ff_pipeFileFormat
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = '|',
        --STRING_DELIMITER = '"',  -- removed
        USE_TYPE_DEFAULT = FALSE
        )
);

Очистите кавычки, используя REPLACE, например:

SELECT 
    REPLACE( a, '"', '' ) a,
    REPLACE( b, '"', '' ) b,
    REPLACE( c, '"', '' ) c,
    REPLACE( d, '"', '' ) d,
    REPLACE( e, '"', '' ) e,
    REPLACE( f, '"', '' ) f
FROM dbo.yourTable

Мои результаты:

My results

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