Azure Synapse SQL池未使用OPENROWSET标识csv头

emeijp43  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(100)

我正在尝试从Azure Synapse Serverless SQL池读取csv,但它无法正确读取csv的头文件,并且在以下尝试中没有一次:

csv为:

test_col1,test_col2
A,B

字符串

尝试1:

SELECT TOP 100 *
FROM OPENROWSET(
    BULK 'https://xxxx.dfs.core.windows.net/xx/xx/Test.csv',
    FORMAT = 'CSV',
    PARSER_VERSION = '2.0'
) AS [result]


它产生了一个表,错误地将C1和C2生成为字段名称:

C1,C2
test_col1,test_col2
A,B

尝试2:

SELECT TOP 100 *
FROM OPENROWSET(
    BULK 'https://xxxx.dfs.core.windows.net/xx/xx/Test.csv',
    FORMAT = 'CSV',
    PARSER_VERSION = '2.0',
    FIRSTROW = 2,
    FIELDQUOTE = '"',
    FIELDTERMINATOR = ','
) AS [result]


它产生了一个表,错误地将C1和C2生成为字段名称,并删除了csv中包含实际标题的行:

C1,C2
A,B

尝试3:

SELECT TOP 100 *
FROM OPENROWSET(
    BULK 'https://xxxx.dfs.core.windows.net/xx/xx/Test.csv',
    FORMAT = 'CSV',
    PARSER_VERSION = '2.0',
    FIRSTROW = 2
) AS [result]


结果与尝试2相同:

C1,C2
A,B


有什么建议吗?

ncgqoxb0

ncgqoxb01#

你需要声明文件有一个头行:

SELECT TOP 100 *
FROM OPENROWSET(
    BULK 'https://xxxx.dfs.core.windows.net/xx/xx/Test.csv',
    FORMAT = 'CSV',
    PARSER_VERSION = '2.0',
    HEADER_ROW = TRUE
) AS [result]

字符串

相关问题