我是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)
有人可以指出我在做什么错误吗? 提前致谢。
答案 0 :(得分:1)
您收到此错误,因为Linux / Unix / Windows上的Db2提供最大精度为31的DECIMAL数据类型。如果使用DECFLOAT,则获得精度34,但您的应用程序必须与该数据类型兼容。
有关支持的数据类型及其特征,请参阅文档page。
您可以使用FLOAT或DOUBLE来估算较大的数字,但前提是应用程序和SQL已正确编码以进行补偿。
仔细验证要求。