创建具有算术溢出错误的表 [英] Creating a table with arithmetic overflow error

查看:101
本文介绍了创建具有算术溢出错误的表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我正在创建一个表,该表的属性中具有char,decimal和date的数据类型.我收到了一些算术溢出错误的结果.不知道您是否可以帮助我学习创建此表.谢谢:D

So I'am making a table with the data type of char, decimal and date in its attributes. I have received a result of some Arithmetic overflow error. Wonder if you could help me learn create this table.THANKS :D

Create table JOB (JOB_CODE char (3), JOB_DESCRIPTION char(25), JOB_CHG_HOUR decimal (4,2), JOB_LAST_UPDATE date)

Insert into JOB (JOB_CODE, JOB_DESCRIPTION, JOB_CHG_HOUR , JOB_LAST_UPDATE )
Values (500, 'Progammer', 35.75, '26-Nov-09'),
(501, 'Systems Analyst', 96.75, '20-Nov-09'),
(502, 'Database Designer', 125.00, '24-Mar-10'),
(503, 'Electrical Engineer', 84.50, '20-Nov-09'),
(504, 'Mechanical Engineer', 67.90, '20-Nov-09'),
(505, 'Civil Engineer', 55.78, '20-Nov-09'),
(506, 'Clerical Support', 26.87, '20-Nov-09'),
(507, 'DSS Analyst', 45.95, '20-Nov-09'),
(508, 'Application Designer', 48.10, '24-Mar-10'),
(509, 'Bio Technician', 34.55, '20-Nov-09'),
(510, 'General Support', 18.36, '20-Nov-09')

这是确切的消息结果:

信息8115,第16级,状态8,第1行 将数字转换为数据类型数字的算术溢出错误. 该声明已终止.

Msg 8115, Level 16, State 8, Line 1 Arithmetic overflow error converting numeric to data type numeric. The statement has been terminated.

推荐答案

您的字段JOB_CHG_HOUR只能容纳4位数字,带有两位小数,因此最多为99,99.您试图插入包含125,00作为JOB_CHG_HOUR值的行.这就是为什么您溢出(超出容量)该字段的原因.考虑将您的create语句更改为:

Your field JOB_CHG_HOUR can only hold numbers of 4 digits, with two decimals, so up to 99,99. You are trying to insert a row which contains 125,00 as a JOB_CHG_HOUR value. That's why you are overflowing (exceeding the capacity) of that field. Consider changing your create statement to:

CREATE TABLE JOB
(
    JOB_CODE CHAR(3), 
    JOB_DESCRIPTION CHAR(25), 
    JOB_CHG_HOUR DECIMAL(5,2), --will now hold up to 999,99
    JOB_LAST_UPDATE DATE
);

此外,根据您拥有的表创建语句,字段JOB_CODE的类型为CHAR(3),因此在插入语句中需要用引号引起来.

Also, according to the table creation statement you have, the field JOB_CODE is of type CHAR(3), so you need quotes in your insert statements.

INSERT INTO JOB (JOB_CODE, JOB_DESCRIPTION, JOB_CHG_HOUR , JOB_LAST_UPDATE)
VALUES('500', 'Programmer', 35.75, '26-Nov-09');

在声明的结尾不要忘记分号;

Don't forget the semicolon ; at the end of your statement!

这篇关于创建具有算术溢出错误的表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆