DP-500 · Question #23
You have a file named File1.txt that has the following characteristics: A header row Tab delimited values UNIX-style line endings You need to read File1.txt by using an Azure Synapse Analytics…
The correct answer is A. SELECT* FROM OPENROWSET( BULK 'File1.txt', DATA_SOURCE = 'Sql1', FORMAT = 'CSV', PARSER_VERSION = '2.0', FIELDTERMINATOR = '\t', ROWTERMINATOR = '0x0a', FIRSTROW = 2 ). To read File1.txt with a header, tab delimiters, and UNIX-style line endings using a Synapse serverless SQL pool, the OPENROWSET query must specify FIELDTERMINATOR = '\t', ROWTERMINATOR = '0x0a', and FIRSTROW = 2.
Question
- A header row
- Tab delimited values
- UNIX-style line endings You need to read File1.txt by using an Azure Synapse Analytics serverless SQL pool. Which query should you execute?
Options
- ASELECT* FROM OPENROWSET( BULK 'File1.txt', DATA_SOURCE = 'Sql1', FORMAT = 'CSV', PARSER_VERSION = '2.0', FIELDTERMINATOR = '\t', ROWTERMINATOR = '0x0a', FIRSTROW = 2 )
- BSELECT* FROM OPENROWSET( BULK 'File1.txt', DATA_SOURCE = 'Sql1', FORMAT = 'CSV', PARSER_VERSION = '2.0', FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n', FIRSTROW = 2 )
- CSELECT* FROM OPENROWSET( BULK 'File1.txt', DATA_SOURCE = 'Sql1', FORMAT = 'CSV', PARSER_VERSION = '2.0', FIELDTERMINATOR = '\t', ROWTERMINATOR = '0x0d0a', FIRSTROW = 2 )
- DSELECT* FROM OPENROWSET( BULK 'File1.txt', DATA_SOURCE = 'Sql1', FORMAT = 'CSV', PARSER_VERSION = '2.0', FIELDTERMINATOR = '\t', ROWTERMINATOR = '0x0a', FIRSTROW = 1 )
How the community answered
(48 responses)- A83% (40)
- B10% (5)
- C2% (1)
- D4% (2)
Why each option
To read File1.txt with a header, tab delimiters, and UNIX-style line endings using a Synapse serverless SQL pool, the OPENROWSET query must specify `FIELDTERMINATOR = '\t'`, `ROWTERMINATOR = '0x0a'`, and `FIRSTROW = 2`.
This query correctly specifies `FIELDTERMINATOR = '\t'` for tab-delimited values, `ROWTERMINATOR = '0x0a'` for UNIX-style line endings (LF, represented as hexadecimal 0x0a), and `FIRSTROW = 2` to skip the header row.
`ROWTERMINATOR = '\n'` is not the correct hexadecimal representation for a UNIX-style line feed (LF) in SQL `OPENROWSET`; the correct hexadecimal is `0x0a`.
`ROWTERMINATOR = '0x0d0a'` represents Windows-style line endings (CRLF), not UNIX-style line endings (LF).
`FIRSTROW = 1` indicates that the first row is data, but the file has a header row that needs to be skipped, making `FIRSTROW = 2` the correct option.
Concept tested: Azure Synapse serverless SQL pool OPENROWSET parameters
Source: https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/query-csv-files#parser-arguments
Topics
Community Discussion
No community discussion yet for this question.