OPENROWSET BULKの結果を変数に渡し、STRING_SPLITを使用して行に分割できるようにする方法はありますか?
何かのようなもの:
DECLARE @MyString = FROM OPENROWSET (BULK 'C:\Temp\File.csv', SINGLE_CLOB) MyFile
SELECT * FROM STRING_SPLIT ( @MyString , '\n' )
これが1つの解決策です。
REPLACE
を使用してCR/LF
をファイルに含まれていないことがわかっている単一の文字(チルド)に置き換え、それをSTRING_SPLIT
で使用しました
DECLARE @CrLf CHAR(2) = CHAR(13) + CHAR(10)
DECLARE @BulkColumn VARCHAR(max)
SELECT @BulkColumn = replace(BulkColumn, @CrLf, '~')
FROM OPENROWSET(BULK 'C:\Temp\z.txt', SINGLE_CLOB) MyFile
SELECT *
FROM string_split(@BulkColumn, '~')
| value |
|-------|
| one |
| two |
| three |