BULK INSERTクエリのLASTROW引数をパラメータ化しようとしています。 SQL Serverにインポートするテキストファイル内の最後の行のデータには、テキストファイルの行数に関する情報が含まれています。そして、その数値を使用して、BULK INSERTクエリのLASTROW引数の値を設定します。Parameterize Microsoft SQL Serverのバルク挿入2014
テキストファイルの例:
メッセージ:私は上記のクエリを実行すると、私は、このエラーメッセージが表示されます
DECLARE @FilePath VARCHAR(500) SELECT @FilePath = 'C:\path\textfile.txt' DECLARE @file VARCHAR(MAX) SELECT @file = (SELECT * FROM OPENROWSET(BULK N'C:\path\textfile.txt', SINGLE_CLOB) AS Content) DECLARE @LastRow INT DECLARE @LastRow_String VARCHAR(10) SELECT @LastRow_String = (SELECT SUBSTRING(@file, CHARINDEX('EOF|', @file)+4, LEN(@file))) SELECT @LastRow = (SELECT CAST(@LastRow_String AS INT)) DECLARE @Query VARCHAR(MAX) SELECT @Query = ('BULK INSERT [Database].[dbo].[Table] FROM ''' + @FilePath + ''' WITH (FIELDTERMINATOR = ''|'', ROWTERMINATOR = ''|\n'', LASTROW = ' + @LastRow + ')')
:
20161003|3504|1360| 20161003|3540|1441| EOF|2
私がに取り組んでいますクエリ245、レベル16、状態1、行11
変換時にvarchar値 'BULK INデータ型intにFIELDTERMINATOR = '|'、ROWTERMINATOR = '| \ n'、LASTROW = 'WITH [C:\ path \ textfile.txt]から[テーブル]
助けてください!
問題はLastRowが整数であることです。 Queryへの連結にはLastRow_Stringを使用する必要があります。空白が気になる場合は、ltrim(rtrim(@LastRow_String))を実行してください。 – Jayvee
@Jayveeそれだけです!どうもありがとうございます! –