2

私はテーブルを持っていますが、その列の 1 つはタイプnumeric(18,9)です。csv ファイルからこのテーブルに一括挿入しようとしています。csvファイルとテーブルの間で列が一致していることに注意してください。

csv の列の 1 つに、3E-445E-2などの形式でいくつかの数字が書かれています (Eは力の記号です)。

データを SQL テーブルに一括挿入しようとするとthere is a type mismatch、その特定の列に対してエラーが発生します。このエラーは、たとえば5E-4.

注意: を使用して Excel で列タイプをチェックするとtype()、すべてのセルが 1 を返します -> これは、列がファイル内のタイプnumericであることを意味しcsvます。

このエラーを克服する方法はありますか?

ありがとう、

4

1 に答える 1

0

おそらく、2 段階のプロセスでこれを行うことができます。最初に、すべての数値列が varchar 型である他のテーブルにデータをインポートし、次にこれを 10 進数に変換して、このような別のテーブルに挿入します。

select CONVERT(decimal(18,9), CONVERT(float, '3E-4'))
于 2013-10-01T09:03:50.987 に答える