私はパイプがフラット・ファイルを区切りインポートしようとしているが、エラーの下に取得しています:BULKのINSERT:FieldTerminator、キャリッジリターンと改行文字を持つフラットファイルとしてROWTERMINATOR
メッセージ4832、レベル16、状態1、行1 バルクロード:予期しないファイルの終わりがデータファイルで検出されました。 メッセージ7399、レベル16、状態1、行1 リンクサーバー "(null)"のOLE DBプロバイダー "BULK"がエラーを報告しました。プロバイダは、エラーに関する情報を一切提供しませんでした。 メッセージ7330、レベル16、状態2、行1 リンクサーバー "(null)"のOLE DBプロバイダー "BULK"から行をフェッチできません。
マイコード:
IF OBJECT_ID('tempdb..##tblImport') IS NOT NULL DROP TABLE tempdb..##tblImport;
CREATE Table ##tblImport (VoucherNumber BIGINT,Currency VARCHAR(100),VoucherAmount MONEY, RetailAmount MONEY, VoucherDuration INT, ServiceProviderGroupID INT, BatchNumber BIGINT, SerialNumber int)
DECLARE @SQL VARCHAR(2000)
DECLARE @FilePath VARCHAR(1000)
SET @FilePath = 'C:\Users\Documents\Sample.txt'
SET @SQL = 'bulk insert ##tblImport from ''C:\Users\Documents\Sample.txt''
WITH
(
FIELDTERMINATOR = ''|'',
ROWTERMINATOR = ''|\n''
)'
EXEC(@SQL)
SELECT * FROM ##tblImport
私は、行の末尾にパイプを削除し、単に「\ n」が、私は同じエラーを取得するには、コードの行区切り文字を変えてみてください。 シリアル番号列をVARCHAR(MAX)に変更しようとしましたが、最後の列にすべてのレコードが入力されています。 \ n再び上記のエラーを出す前にスペースを与えてください。誰かがデータをインポートするためのコードを教えてくれますか?
FIELDTERMINATOR = '' | ''、ROWTERMINATOR = '' | \ n " デリミタの前にスペースを入れた場合、以下のエラーが表示されます。 ** 1行8(SerialNumber)の一括読み込みデータ変換エラー(指定したコードページの型が一致しないか無効な文字)** –
FYI:@FilePath変数は宣言されていますが使用されていません。 –
はい。私はそれを変えます。ありがとうございました。 @SQL_Underworld –