2011-01-21 34 views
2

タブ区切りの* .txtファイルからBCPを使用してSQLテーブルにデータをインポートする際に問題があります。BCPインポートヘルプ

「キャスト指定に無効な文字値」というエラーが2つ続きます。

テストとして、手動で数行挿入しました。その後、BCPはこれらの行を* .txtファイルに問い合せます。次に、同じデータをBCPにインポートしようとしました。私は「キャスト仕様の無効な文字値が」エラーを持って、

を「予期しないEOFがBCPデータ・ファイルに遭遇した」そのテストで

はエラーをトリガしているかの行/列を指示する方法はありますか?

BCPをデバッグするためのヒントや提案はありますか?

#@ Row 1, Column 2: Invalid character value for cast specification @# 
1003 1/2/2011 23:59:00 Neeta Garg <NULL> 8888 <NULL> <NULL> WESTBURY NY 11594 US ambulance Yes Agency 92240099 000026 Neeta Garg <NULL> 8888 <NULL> <NULL> WESTBURY NY 11594 US 2222222222 [email protected] <NULL> UPS GRD 42.650 AXB479T;67.5900;2|842000YEL;4.2900;22|B956N;51.8900;1|XSPSPCL;67.0000;1890300;2999.9900;1|B956N;51.8900;1|XSPSPCL;210.0000;1|59047BKLG;9.9900;1 AXB479T;|842000YEL;|B956N;Badge Custom Details : Style = B956, Dimensions = 2 9/16\" x 2 9/16\", Enamel Type = regular, Font = block-black, Panel 2 = , Panel 3 = , Panel 5 = , Panel 6 = , Seal Style = , Attachment = NONE, Text Separator = NONE, Badge Comments = , badgeURL = http://www.blackinton.com/design-a-badge/data/pdf/vhbdab1291672350948.png, RESTXML = http://www.blackinton.com/design-a-badge/generate-xml.php?u=vhbdab1291672350948, Base Price = 59.00, Enamel = 0.00, Struck Solid = 0.00, Seal = 0.0 3271.8700 0.0000 0.0000 0.0000 3271.8700 1 Visa <NULL> 0 
1004 1/3/2011 23:59:00 Neeta Garg <NULL> 8888   WESTBURY NY 11594 US ambulance Yes Agency 92240099 000026 Neeta Garg  8888   WESTBURY NY 11594 US 2222222222 [email protected]  UPS GRD 0.000 AXB479T;67.5900;2|842000YEL;4.2900;22|B956N;51.8900;1|XSPSPCL;67.0000;1890300;2999.9900;1|B956N;51.8900;1|XSPSPCL;210.0000;1|59047BKLG;9.9900;1A161BK;115.9900;1 AXB479T;|842000YEL;|B956N;Badge Custom Details : Style = B956, Dimensions = 2 9/16\" x 2 9/16\", Enamel Type = regular, Font = block-black, Panel 2 = , Panel 3 = , Panel 5 = , Panel 6 = , Sea 
#@ Row 2, Column 2: Invalid character value for cast specification @# 
1005 1/4/2011 23:59:00 Neeta Garg <NULL> 8888 <NULL> <NULL> WESTBURY NY 11594 US ambulance Yes Agency 92240099 000026 Neeta Garg <NULL> 8888 <NULL> <NULL> WESTBURY NY 11594 US 2222222222 [email protected] <NULL> UPS GRD 0.000 AXB479T;67.5900;2|842000YEL;4.2900;22|B956N;51.8900;1|XSPSPCL;67.0000;1890300;2999.9900;1|B956N;51.8900;1|XSPSPCL;210.0000;1|59047BKLG;9.9900;1A161BK;115.9900;1A161BK;115.9900;1 AXB479T;|842000YEL;|B956N;Badge Custom Details : Style = B956, Dimensions = 2 9/16\" x 2 9/16\", Enamel Type = regular, Font = block-black, Panel 2 = , Panel 3 = , Panel 5 = , Panel 6 = , Seal Style = , Attachment = NONE, Text Separator = NONE, Badge Comments = , badgeURL = http://www.blackinton.com/design-a-badge/data/pdf/vhbdab1291672350948.png, RESTXML = http://www.blackinton.com/design-a-badge/generate-xml.php?u=vhbdab1291672350948, Base Price = 59.00, Enamel = 0.00, Struck Solid = 0.00, Seal = 0.0 115.9900 8.0000 0.0000 0.0000 123.9900 1 Visa <NULL> 0 
1006 2011-01-05 11:27:50.617 Neeta Garg <NULL> 8888   WESTBURY NY 11594 US ambulance Yes Agency 92240099 000026 Neeta Garg  8888   WESTBURY NY 11594 US 2222222222 [email protected]  UPS GRD 0.000 AXB479T;67.5900;2|842000YEL;4.2900;22|B956N;51.8900;1|XSPSPCL;67.0000;1890300;2999.9900;1|B956N;51.8900;1|XSPSPCL;210.0000;1|59047BKLG;9.9900;1A161BK;115.9900;1A161BK;115.9900;1A161BK;115.9900;1 AXB479T;|842000YEL;|B956N;Badge Custom Details : Style = B956, Dimensions = 2 9/16\" x 2 9/16\", Enamel Type = regular, Font = block-black, Panel 2 = , Panel 

私は、BCPインポート日付をdatetimeタイプとしてインポートすることはできません。だから、私はそれをtempテーブルにインポートしています。タイプはvarcharです。それから、私が必要とするテーブルにSELECT INTOするつもりです。しかし、ターゲット表の列タイプがvarcharであっても、無効な文字エラーが発生します。

#@ Row 1, Column 2: Invalid character value for cast specification @# 
1003 2011-01-21 12:30:10.917 Neeta Garg <NULL> 8888 <NULL> <NULL> WESTBURY NY 11594 US ambulance Yes Agency 92240099 000026 Neeta Garg <NULL> 8888 <NULL> <NULL> WESTBURY NY 11594 US 2222222222 [email protected] <NULL> UPS GRD 42.650 AXB479T;67.5900;2|842000YEL;4.2900;22|B956N;51.8900;1|XSPSPCL;67.0000;1890300;2999.9900;1|B956N;51.8900;1|XSPSPCL;210.0000;1|59047BKLG;9.9900;1 AXB479T;|842000YEL;|B956N;Badge Custom Details : Style = B956, Dimensions = 2 9/16\" x 2 9/16\", Enamel Type = regular, Font = block-black, Panel 2 = , Panel 3 = , Panel 5 = , Panel 6 = , Seal Style = , Attachment = NONE, Text Separator = NONE, Badge Comments = , badgeURL = http://www.blackinton.com/design-a-badge/data/pdf/vhbdab1291672350948.png, RESTXML = http://www.blackinton.com/design-a-badge/generate-xml.php?u=vhbdab1291672350948, Base Price = 59.00, Enamel = 0.00, Struck Solid = 0.00, Seal = 0.0 3271.8700 0.0000 0.0000 0.0000 3271.8700 1 Visa <NULL> 0 
1004 2011-01-21 12:30:10.917 Neeta Garg <NULL> 8888   WESTBURY NY 11594 US ambulance Yes Agency 92240099 000026 Neeta Garg  8888   WESTBURY NY 11594 US 2222222222 [email protected]  UPS GRD 0.000 AXB479T;67.5900;2|842000YEL;4.2900;22|B956N;51.8900;1|XSPSPCL;67.0000;1890300;2999.9900;1|B956N;51.8900;1|XSPSPCL;210.0000;1|59047BKLG;9.9900;1A161BK;115.9900;1 AXB479T;|842000YEL;|B956N;Badge Custom Details : Style = B956, Dimensions = 2 9/16\" x 2 9/16\", Enamel Type = regular, Font = block-black, Panel 2 = , Panel 3 = , Panel 5 = , Panel 6 = , Sea 
#@ Row 2, Column 2: Invalid character value for cast specification @# 
1005 2011-01-21 12:30:10.917 Neeta Garg <NULL> 8888 <NULL> <NULL> WESTBURY NY 11594 US ambulance Yes Agency 92240099 000026 Neeta Garg <NULL> 8888 <NULL> <NULL> WESTBURY NY 11594 US 2222222222 [email protected] <NULL> UPS GRD 0.000 AXB479T;67.5900;2|842000YEL;4.2900;22|B956N;51.8900;1|XSPSPCL;67.0000;1890300;2999.9900;1|B956N;51.8900;1|XSPSPCL;210.0000;1|59047BKLG;9.9900;1A161BK;115.9900;1A161BK;115.9900;1 AXB479T;|842000YEL;|B956N;Badge Custom Details : Style = B956, Dimensions = 2 9/16\" x 2 9/16\", Enamel Type = regular, Font = block-black, Panel 2 = , Panel 3 = , Panel 5 = , Panel 6 = , Seal Style = , Attachment = NONE, Text Separator = NONE, Badge Comments = , badgeURL = http://www.blackinton.com/design-a-badge/data/pdf/vhbdab1291672350948.png, RESTXML = http://www.blackinton.com/design-a-badge/generate-xml.php?u=vhbdab1291672350948, Base Price = 59.00, Enamel = 0.00, Struck Solid = 0.00, Seal = 0.0 115.9900 8.0000 0.0000 0.0000 123.9900 1 Visa <NULL> 0 
1006 2011-01-21 12:30:10.917 Neeta Garg <NULL> 8888   WESTBURY NY 11594 US ambulance Yes Agency 92240099 000026 Neeta Garg  8888   WESTBURY NY 11594 US 2222222222 [email protected]  UPS GRD 0.000 AXB479T;67.5900;2|842000YEL;4.2900;22|B956N;51.8900;1|XSPSPCL;67.0000;1890300;2999.9900;1|B956N;51.8900;1|XSPSPCL;210.0000;1|59047BKLG;9.9900;1A161BK;115.9900;1A161BK;115.9900;1A161BK;115.9900;1 AXB479T;|842000YEL;|B956N;Badge Custom Details : Style = B956, Dimensions = 2 9/16\" x 2 9/16\", Enamel Type = regular, Font = block-black, Panel 2 = , Panel 
+0

ところで...私はIDフィールドやキーフィールドの制約がありません。 – s15199d

+0

2列または3列のデータを削除してインポートを試みました。私はすべての列を排除するまでそれをしました。私はまだキャスト仕様の "無効な文字値"エラーを取得し続けています。 – s15199d

+1

対象の列の型をvarcharに変更しました。さて、私は、インポートする日付を変換して、目的のテーブルに変換する必要があります。 – s15199d

答えて

12

私はここにこのリンクhttp://luke.breuer.com/time/item/bcp_utility_gotchas/46.aspx

を読んでそれは言う:キャスト仕様 ため

無効な文字値は、bcpは、カラムにアップロードしようとした値が誤ったデータ型でした。最も単純なケースでは、これは、整数でない値、不正な日付形式などをアップロードすることによるものです。しかし、{データファイルの列数}!= {宛先表の列数/フォーマットファイル}。エラーファイルが吐き出す場合は、列番号の不一致があるかどうかを確認するための良い方法です(あなたが-e error.txtを使用しました、右?)のようになります。何bcpは2つの行を考えている

 
#@ Row 1, Column 9: Invalid character value for cast specification @# 
2 0300 HC:36415 21 1 0  20070509 2 
3 0300 HC:36415 21 1 0  20070608 2 
#@ Row 2, Column 9: Invalid character value for cast specification @# 
4 0301 HC:80076 366 1 0  20070509 2 
5 0301 HC:80076 366 1 0  20070608 2 

お知らせデータの1行がデータベースにアップロードされます。この は、bcpが最後の行区切り文字を除いて{区切り}であることを知っているので、{改行}です。別の列が必要な場合は{改行}を直読します。

日付形式が正しく書かれているかどうかを確認します。 http://support.microsoft.com/kb/883503

EDIT 2 - 1241PST

あなたのDBは、SQL Server、およびあなたがする日時でインポートしようとしている列のデータ・タイプであると仮定すると、フォーマットは次のようになります。

2011-01 30::-21 12 10.917

私は...私は一度、この問題に遭遇したと思います

EXCELへ(タブ区切りで.TXT)あなたのフラット・ファイルを開くと、そこから列を選択して変更してみてくださいフォーマット。これを行うには、Excelの[データ]タブに移動して列を選択し、[テキストを列に表示]を選択し、区切りを選択して終了します。すべての日付と時刻が表示されます。

次に列を再度選択し、右クリックしてセルをフォーマットし、カテゴリリストで[日付]を選択し、SQL Serverの予想される標準形式に変更する必要があります。それが役に立たない場合は、テーブル/データベースを使用して簡単で小さなテストケースをテストして、問題を絞り込むことはできません。

+1

私は実際には、-e error-fileコマンドを使用していませんでした。そのチップをありがとう。どちらの場合も、エラーは日付フィールドに表示されていますが、日付は有効と思われます。 エラーファイルのヒントをありがとう! インポートのためのフォーマットファイルの作成が完了しました。私はそれに渦をかけるつもりです。 – s15199d

+0

元の投稿にエラーファイルの出力を追加しました。なぜ2011年1月2日23:59:00が「キャスト指定の文字値が無効です」と思われるのですか?ところで、私はフォーマットファイルを試して、私はそこに根拠を得ることはなかった。 – s15199d

+0

投稿を編集しましたが、EDIT2を試してみました。 – suhprano

関連する問題