私は、BCPを使用してデータファイルをSQL Serverにロードしようとしていましたが、動作させることはできません。BCPを使用してデータファイルをSQL Serverにインポートできません。どうすればこの作品を作れますか?
これは私が実行しているコマンドーです:bcp EDW.stg.STG_ACCOUNT in .\dm_account000 -T -S 111.1.1.111,1111 -t "," -c
と私が得たすべては、このエラーだった:
Starting copy...
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 11 for SQL Server]Invalid character value for cast specification
私はすでに多くのウェブサイト上で言及したが、何も私の最後と間違っているように思われていない日付の変換の問題をチェックしますデータファイルの3つのフィールド。ここに私のデータファイルがあるとフッターで、あなたはエンコーディングを見ることができる、など
そして、ここに私のターゲット表のスペックです:
CREATE TABLE [stg].[STG_ACCOUNT](
[CD_ACCOUNT] [varchar](20) NULL,
[CD_CNPJ] [varchar](30) NULL,
[NA_ACCOUNT] [varchar](255) NULL,
[NA_OWNER] [varchar](100) NULL,
[NA_OWNER_SHARED] [varchar](100) NULL,
[NA_OWNER_GROWTH_TEAM] [varchar](100) NULL,
[DS_INDUSTRY] [varchar](50) NULL,
[DS_ACCOUNT_STATUS] [varchar](30) NULL,
[NA_ACCOUNT_CITY] [varchar](50) NULL,
[AB_ACCOUNT_STATE] [char](30) NULL,
[DS_REGION] [varchar](50) NULL,
[IN_CLASSIFICATION_PARTNER] [int] NULL,
[IN_CLASSIFICATION_PARTNER_N] [int] NULL,
[DS_COMPETITOR_PARTNER] [char](3) NULL,
[DS_HEADQUARTER_BRANCH] [varchar](30) NULL,
[DS_CHAIN_FRANCHISE] [varchar](30) NULL,
[DS_ECONOMIC_GROUP] [varchar](255) NULL,
[DS_WATCH_LIST] [varchar](50) NULL,
[IN_STRATEGIC] [int] NULL,
[DT_CREATED] [date] NULL,
[DT_LAST_ACTIVITY] [date] NULL,
[DT_LAST_MODIFIED] [date] NULL,
)
誰もがこの問題で私を助けることができます?他に何ができるかわからない。前もって感謝します。
エラーMSGは少し誤解を招くかもしれないが、多分問題は-c使って、「\ rを\ n」は(CRLF)にデフォルトのロー・ターミネータを設定しているということですあなたのファイルでは '\ n'(LF)です。 -r "\ r \ n"を明示的に指定して行区切りを無効にしてみてください。 – Jayvee
コンマ区切り文字と 'LF'改行を持つことを意味する' -t、-r \ n'を指定する必要があります。 [フィールドと行ターミネータの指定(SQL Server)](https://msdn.microsoft.com/en-us/library/ms191485.aspx) –
@Jayvee答えをありがとう。データファイルでEOLを 'DOS/Windows'に変更したところ、それはうまくいったが、奇妙なことがあった。私のデータファイルは125.616行ですが、インポートされるのは47.169だけです。エラー行をエラーファイルにリダイレクトしましたが、10行しか表示されません(手動でインポートすることはできますが、問題はありません)。エラーが発生した場合、bcpはデータブロックをスキップしているようです。あなたはこの行動を見たことがありますか? –