我刚开始学习数据库。我正在处理一个表,我收到如下错误消息:
Msg 8114,Level 16,State 5,Line 1
将数据类型varchar转换为数字时出错。
我正在插入下表中的数据:
EMPLOYEE_PAY_TBL
:
EMP_ID POSITION DATE_HIRE PAY_RATE DATE_LAST SALARY BONUS
311549902 MARKETING 23-MAY-89 01-MAY-99 4000
442346889 TEAM LEADER 17-JUN-90 14.75 01-JUN-99
我创建的表格如下:
Emp_id varchar (20) not null
position varchar (25) not null
date_hire date not null
pay_rate decimal (4,2) null
date_last raise date null
Salary int null
Bonus int null
我无法弄清楚为什么我收到错误消息或如何更正。
请帮忙。
答案 0 :(得分:1)
您正在尝试将数字列作为字符串插入。特别是你的列将采用空值。
在插入语句中,执行以下操作:
INSERT INTO EMPLOYEE_PAY_TBL VALUES ('311549902', 'MARKETING', '19890523', '', '19990501', '4000', '')
您正在尝试将列支付率和奖励设置为等于您在语句中的空字符串''
。空字符串不是NULL值。它只是一串零元素。
所以试试:
INSERT INTO EMPLOYEE_PAY_TBL VALUES (311549902, 'MARKETING', '19890523', NULL, '19990501', 4000, NULL)
请注意,您也将日期视为字符串,最终会让您感到头痛。因为你是SQL的新手,所以当你到达那里时,我会让你穿过那座桥。