gpt4 book ai didi

oracle - 十进制(s,p)或数字(s,p)?

转载 作者:行者123 更新时间:2023-12-03 14:11:21 24 4
gpt4 key购买 nike

最近,在进行db2-> oracle迁移项目时,我们遇到了这种情况。
开发人员无意间使用十进制(s,p)列创建了新的表结构。我不记得Oracle支持此功能,但是随后的一些挖掘表明它是ANSI数据类型,因此受oracle支持。

但是,对我来说,问题仍然存在-


内部如何处理这些数据?
使用ANSI类型而不是Oracle的内置类型是否有成本?
如果目标类型是Oracle内置类型,那么在数据迁移期间会产生影响吗?

最佳答案

在Oracle中,they are the same


创建表和集群的SQL语句也可以使用ANSI数据
IBM产品SQL / DS和DB2中的类型和数据类型。甲骨文
识别与Oracle不同的ANSI或IBM数据类型名称
数据库数据类型名称。它将数据类型转换为等效
Oracle数据类型,记录Oracle数据类型作为名称
列数据类型,并以Oracle数据类型存储列数据
根据下表中显示的转换。


该引号下方的表显示DECIMAL(p,s)在内部被视为NUMBER(p,s)

SQL> create table t (a decimal(*,5), b number (*, 5));

Table created

SQL> desc t;
Name Type Nullable Default Comments
---- ----------- -------- ------- --------
A NUMBER(*,5) Y
B NUMBER(*,5) Y


但是, DECIMAL的小数位数默认为0,这意味着将 DECIMAL(*)视为 NUMBER(*, 0),即 INTEGER

SQL> create table t (a decimal, b number, c decimal (5), d decimal (5));

Table created

SQL> desc t;
Name Type Nullable Default Comments
---- --------- -------- ------- --------
A INTEGER Y
B NUMBER Y
C NUMBER(5) Y
D NUMBER(5) Y

关于oracle - 十进制(s,p)或数字(s,p)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11031409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com