2013-07-05 51 views
0

我必须将数据从AS400 DB2系统加载到SQL Server 2012。提取的数据是以我需要加载到SQL Server的excel格式存储的。推荐IBM DB2/AS400 Subscribers带有字节长度和十进制长度的DB2/AS400小数点的SQL Server数据类型

我在DB2/AS400中有以下十进制类型。

  1. 字节长度= 2,十进制长度= 3,十二月POS = 0
  2. 字节长度= 3,十进制长度= 5,十二月POS = 2
  3. 字节长度= 3,十进制长度= 3,癸POS = 0
  4. 字节长度= 3,十进制长度= 5,癸POS = 4
  5. 字节长度= 4,十进制长度= 4,癸POS = 0
  6. 字节长度= 4,十进制长度= 6 ,Dec Pos = 3
  7. 字节长度= 4,Decima升长度= 7,十二月POS = 4
  8. 字节长度= 5,十进制长度= 5,十二月POS = 0
  9. 字节长度= 5,十进制长度= 9,十二月POS = 4
  10. 字节长度= 6 ,十进制长度= 11,十二月POS = 0
  11. 字节长度= 6,十进制长度= 11,十二月POS = 2
  12. 字节长度= 6,十进制长度= 11,十二月POS = 4
  13. 字节长度= 6,十进制长度= 11,Dec Pos = 5
  14. 字节长度= 7,十进制长度= 13,Dec Pos = 4
  15. 字节长度= 7,十进制长度= 7,十二月POS = 2
  16. 字节长度= 9,十进制长度= 9,十二月POS = 4

什么是SQL Server 2012的相应的数据类型的每个这些?

选择这些数据类型的基本原理是什么?

回答

1

在SQL Server中,您无法定义decimal占用多少存储 - SQL Server具有固定的存储要求。所以我认为我们必须忽略字节长度,如果我将其解释为存储大小要求。至于剩下的,在SQL Server中,你声明decimal为:

decimal (p ,s) 

哪里p是精度(在数字的所有部分的总位数)和s是规模(中位数的号码小数点右侧)。由于所有显示的类型都具有较大的“小数位数”,即“Dec Pos”,因此我将假设这些概念直接映射到精度和比例。

因此,类型编号1将是decimal(3,0),编号16将是decimal(9,4)

+0

我们不能使用'money'作为数据类型吗?注意:当excel加载数据时,它在SQL Server中加载为'float' – Lijo

+1

@Lijo - 你可以但我不会推荐它。它**就像**一个“十进制(19,4)”,只是它有一些奇怪的舍入规则。 –