Лазурный синапс - разделитель строк
У меня есть текстовый файл следующего формата.
"01|" "образец" "|" "Тест" | "" тестирование ""|""01"|"""".
Я создал внешнюю таблицу в Azure Synapse, установив для параметра формата STRING_DELIMITER значение '"'. Но при обработке файла через sp я получаю указанную ниже ошибку.
"Не удалось найти разделитель после разделителя строк"
Есть ли какое-нибудь решение для этого? Любая помощь будет оценена.
С уважением, Сандип
2 ответа
В моих тестах с этой примерной строкой кавычки вызвали проблему, потому что они очень неровные. Лучше создать внешнюю таблицу, игнорируя кавычки, и затем очистить их, например, установите внешний формат файла следующим образом:
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
Мои результаты:
CREATE EXTERNAL FILE FORMAT
не поддерживает символ STRING_DELIMITER в значении столбца.