获取错误在db2中使用数据类型创建表时

问题描述 投票:-1回答:1

我是DB2的新手。我尝试使用以下查询创建表:

CREATE TABLE CLP.legal_bill_charge(
client_id VARCHAR(11),
client_division_id VARCHAR(11),
client_office_id VARCHAR(11),
matter_id VARCHAR(11),
legal_bill_charge_id VARCHAR(13) NOT NULL,
legal_bill_id VARCHAR(11),
lawfirm_charge_number decimal(10,4),
timekeeper_id VARCHAR(11),
timekeeper_name varchar(256),
timekeeper_billed_level varchar(20),
charge_type char(10),
charge_text varchar(300),
long_charge_text varchar(8000),
charge_date TIMESTAMP   ,
original_units decimal(8,2),
original_unit_price decimal(23,6),
original_amount decimal(23,6),
current_units decimal(19,13),
current_unit_price decimal(23,6),
current_adjustment_amount decimal(23,6),
lf_adjustment_amount decimal(23,6),
lbc_tax_type varchar(6),
lbc_tax_rate decimal(16,15),
tax_amount decimal(65,36),
recommended_expense_amount decimal(23,6),
recommended_fee_amount decimal(23,6),
activity_code varchar(255),
activity_desc varchar(255),
task_code varchar(255),
task_desc varchar(255),
phase_code_id varchar(255),
phase_code_desc varchar(255))
in FAC032TS
organize by row;

但是我得到以下错误:DB21034E该命令被处理为SQL语句,因为它不是有效的命令行处理器命令。在SQL处理期间,它返回:SQL0604N列的长度,精度或比例属性,不同类型,结构化类型,数组类型,结构化类型的属性,例程,强制转换目标类型,类型映射或全局变量“decimal(65,36) )“无效。 SQLSTATE = 42611

SQL0604N列的长度,精度或比例属性,不同类型,结构化类型,数组类型,结构化类型的属性,例程,强制转换目标类型,类型映射或全局变量“decimal(65,36)

有人可以指出我在做什么错误吗?提前致谢。

db2 db2-luw
1个回答
1
投票

您收到此错误,因为Linux / Unix / Windows上的Db2提供最大精度为31的DECIMAL数据类型。如果使用DECFLOAT,则获得精度34,但您的应用程序必须与该数据类型兼容。

有关支持的数据类型及其特征,请参阅文档page

您可以使用FLOAT或DOUBLE来估算较大的数字,但前提是应用程序和SQL已正确编码以进行补偿。

仔细验证要求。

© www.soinside.com 2019 - 2024. All rights reserved.