NUMBER自动转换为DECFLOAT

时间:2019-06-25 11:31:34

标签: db2 db2-luw

我是DB2的新手。我正在尝试在现有表上运行变更查询。

假设db中已经有EMP表,且其下面的列

id int name varchar(50)

现在,我正在尝试为查询下面运行的列添加新的薪水。

ALTER TABLE EMP ADD SALARY NUMBER

以上查询成功运行。之后,我描述了EMP表,结果如下:

ID INTEGER NAME VARCHAR SALARY DECFLOAT

当我尝试添加具有NUMBER数据类型的列时,我不知道NUMBER如何转换为DECFLOAT。

如果有人可以解释这一点将很有帮助。

Db2版本详细信息如下:

Service_Level: DB2 v11.1.2.2

Fixpack_num : 2

1 个答案:

答案 0 :(得分:3)

对于用于Linux / Unix / Windows的Db2,启用了NUMBER数据类型(这不是默认值),这就是documented行为。

特别是

  

设置number_compat数据库配置的效果   设置为ON的参数如下。当NUMBER数据类型为   在SQL语句中显式遇到的数据类型是隐式的   映射如下:

Exception in thread Thread-6:
Traceback (most recent call last):
File "D:\AppInstall\Anaconda3\envs\py3_7\lib\threading.py", line 917, in _bootstrap_inner
    self.run()
File "D:\AppInstall\Anaconda3\envs\py3_7\lib\threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)

  File "D:\AppInstall\Anaconda3\envs\py3_7\lib\multiprocessing\pool.py", line 470, in _handle_results

    task = get()

  File "D:\AppInstall\Anaconda3\envs\py3_7\lib\multiprocessing\connection.py", line 251, in recv

    return _ForkingPickler.loads(buf.getbuffer())

  File "cupy\cuda\runtime.pyx", line 134, in 

cupy.cuda.runtime.CUDARuntimeError.__init__
TypeError: an integer is required