casting変数t-sql
では、バルク挿入ステートメントでは、外部ファイルからテーブルにデータをインポートできます。ただし、文字列変数をデータソースとして使用する場合、エラーが発生する可能性があります。 @csvfile = n't:\ x.csv 'を設定します。 バルク挿入[dbo]。[tstagingTable] - n't:\ x.csv 'から - この行は機能します @csvfileから - この行は失敗します と ( FieldTerminator = '、'、 rowterminator = '\ n'、 Firstow = 2 )
エラーメッセージ: 'with'。
理由:
DECLARE @CSVfile nvarchar(255); SET @CSVfile = N'T:\x.csv'; BULK INSERT [dbo].[TStagingTable] -- FROM N'T:\x.csv' -- This line works FROM @CSVfile -- This line fails WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', FIRSTROW = 2 )ステートメントでは、クロースは入力ファイルのパスとしてリテラル文字列を必要とします。変数を使用する場合、文字通りの文字列にキャストする必要があります。 @q =を設定します 'バルクインサート[tStagingTable] 'char(39)@csvfile char(39)'から と ( FieldTerminator = ''、 ''、 rowterminator = '' \ n ''、 firstow = 1 )) exec(@q)
このコードは、句から@csvfileをリテラル文字列にキャストし、問題を解決し、バルクインサートを成功させるための動的なSQLステートメントを生成します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3