因此,我要在其属性中使用数据类型为char,十进制和日期的表格。我收到了一些算术溢出错误的结果。不知道您是否可以帮助我学习创建此表。
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将数字转换为数据类型数字的算术溢出错误。该语句已终止。
您的字段JOB_CHG_HOUR只能包含4位数字,带有两位小数,因此最多为99,99。您试图插入包含125,00作为JOB_CHG_HOUR值的行。这就是为什么您溢出(超出容量)该字段的原因。考虑将您的create语句更改为:
JOB_CHG_HOUR
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),因此在插入语句中需要用引号引起来。
JOB_CODE
CHAR(3)
INSERT INTO JOB (JOB_CODE, JOB_DESCRIPTION, JOB_CHG_HOUR , JOB_LAST_UPDATE) VALUES('500', 'Programmer', 35.75, '26-Nov-09');
不要忘记;声明结尾的分号!
;