1

freebcpSQL Server にデータを一括コピーするために使用します。整数に切り捨てられる数値を除いて、正常に機能します。データベースの列は であるFLOATため、小数点以下の値を処理できます。

指示

freebcp MyDatabase.MySchema.MyTable in /path/to/myfile.txt -c -S MyServer -U MyUser -P MyPassword

MyTable には 5 つの列があり、最初の列は 2 つの INTEGER で、他は FLOAT です。

からのサンプルmyfile.txt

19344   303634  -0.419398400743657  -1.38936409312037   0.550567291633061
19345   303634  -1.59787440264054   -2.05068741446749   -1.14506139081359

として保存されます

19344   303634  0   -1  1
19345   303634  -2  -2  -1

これを修正する方法は?

注:freebcpUbuntuで使用しています。bcpWindows で使用する場合、ほとんど同じ構文を使用している間、浮動列は正しくエクスポートされます (突き上げ接続に置き換えfreebcpbcp使用するだけです)。

bcp MyDatabase.MySchema.MyTable in /path/to/myfile.txt -c -S MyServer -T
4

1 に答える 1

0

質問者は当初、小数点以下 3 桁のデータ型は であると述べていましたNUMERICFLOATこの回答に応じて、質問者は質問を編集し、データ型を に変更しました。

NUMERICと機能的に同等DECIMALです。msdn-数値

SQL テーブルの列の精度位取りは定義されていますか? NUMERIC定義されていない場合、デフォルトの精度は 18 で、スケールは 0 です。したがって、定義されていない場合、小数点以下の桁数は 0 になります。

必要な小数点以下の桁数 ( scale ) を予測できない場合は、FLOATデータ型の方が適しています。msdn-フロート

それ以外の場合は、 の精度スケールを設定する必要がありますNUMERIC

于 2016-04-21T13:09:04.653 に答える