NUMBER 自动转换为 DECFLOAT
NUMBER is automatically getting converted to DECFLOAT
我是 DB2 新手。我正在尝试 运行 对现有 table.
的更改查询
假设 EMP table 已经存在于具有以下列的数据库中
id int
name varchar(50)
现在我正在尝试添加一个新列 Salary,因为我正在 运行ning 下面的查询。
ALTER TABLE EMP ADD SALARY NUMBER
以上查询运行成功。之后我描述了 EMP table 它给了我以下结果:
ID INTEGER
NAME VARCHAR
SALARY DECFLOAT
当我尝试添加一个数据类型为 NUMBER 的列时,我不知道 NUMBER 是如何转换为 DECFLOAT 的。
如果有人能解释一下,这将很有帮助。
Db2版本详情如下:
Service_Level: DB2 v11.1.2.2
Fixpack_num : 2
对于 Linux/Unix/Windows 的 Db2,启用 NUMBER 数据类型(这不是默认值),这是 documented 行为。
具体来说
The effects of setting the number_compat database configuration
parameter to ON are as follows. When the NUMBER data type is
explicitly encountered in SQL statements, the data type is implicitly
mapped as follows:
If you specify NUMBER without precision and scale attributes, it is mapped to DECFLOAT(16).
If you specify NUMBER(p), it is mapped to DECIMAL(p).
If you specify NUMBER(p,s), it is mapped to DECIMAL(p,s).
我是 DB2 新手。我正在尝试 运行 对现有 table.
的更改查询假设 EMP table 已经存在于具有以下列的数据库中
id int
name varchar(50)
现在我正在尝试添加一个新列 Salary,因为我正在 运行ning 下面的查询。
ALTER TABLE EMP ADD SALARY NUMBER
以上查询运行成功。之后我描述了 EMP table 它给了我以下结果:
ID INTEGER
NAME VARCHAR
SALARY DECFLOAT
当我尝试添加一个数据类型为 NUMBER 的列时,我不知道 NUMBER 是如何转换为 DECFLOAT 的。
如果有人能解释一下,这将很有帮助。
Db2版本详情如下:
Service_Level: DB2 v11.1.2.2
Fixpack_num : 2
对于 Linux/Unix/Windows 的 Db2,启用 NUMBER 数据类型(这不是默认值),这是 documented 行为。
具体来说
The effects of setting the number_compat database configuration parameter to ON are as follows. When the NUMBER data type is explicitly encountered in SQL statements, the data type is implicitly mapped as follows:
If you specify NUMBER without precision and scale attributes, it is mapped to DECFLOAT(16). If you specify NUMBER(p), it is mapped to DECIMAL(p). If you specify NUMBER(p,s), it is mapped to DECIMAL(p,s).