oracle到db2数据类型:数字精度为星号

时间:2011-02-25 16:22:20

标签: sql oracle db2

我正在将现有的oracle SQL查询转换为DB2 - 我想知道oracle构造了什么:

COLUMN1_ NUMBER(*,10)

...在DB2中意味着......

COLUMN1_是表格中的列名。

4 个答案:

答案 0 :(得分:1)

我做了一些挖掘并发现了这个:

  

Oracle保证可移植性   精度等于或的数字   少于38位。你可以指定一个   规模和精度:

     

column_name NUMBER(*,scale)

     

在这种情况下,精度为38,和   保持指定的比例。

从这里开始:http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#i22289

虽然我还没有找到DB2创建表查询的内容。

任何输入?

答案 1 :(得分:0)

您可以使用DECIMAL(x,y)替换NUMBER(x,y)或启用compatibility features并保持原样。

答案 2 :(得分:0)

我不知道你可以使用星号,所以我创建了一个包含该列规范的表。在Oracle 10.2中,它与之相同 NUMBER(22, 10)DECIMAL(22, 10)

第一个数字(22)是允许的最大有效位数。第二个数字(10)是小数点右边的最大位数。

答案 3 :(得分:0)

从版本9.7开始,DB2 for Linux,UNIX和Windows现在支持各种Oracle函数,数据类型(NUMBER,VARCHAR2,包含时间戳的DATE,仅举几例),还介绍了PL / SQL兼容性。这些功能的目标是帮助加速和简化将应用程序从Oracle迁移到DB2的任务。 IBM甚至提供了一个名为MEET DB2的兼容性分析工具,它将扫描Oracle DDL的摘录(包括PL / SQL包),以生成一个报告,突出显示可能需要在DB2中进行一些手动调整的区域。当DB2_COMPATIBILITY_VECTOR设置为ORA时,超过90%的原始Oracle代码按原样正常运行并不罕见。