我是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
答案 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