“修改您的查询以添加一个列,该列从新工资中减去旧工资。
标记“增加”列。运行修改后的查询。”
好吧,根据我的解释,我首先尝试通过编写脚本来添加该列:
ALTER TABLE EMPLOYEES ADD (
INCREASE2 NUMBER(6));
Then:
INSERT INTO EMPLOYEES(INCREASE2)
SELECT (salary*1.155) - salary FROM EMPLOYEES;
SQL 错误:ORA-01400:não é possível inserir NULL em ("HR"."EMPLOYEES"."EMPLOYEE_ID")
01400. 00000 - “无法将 NULL 插入 (%s)”
"HR"."EMPLOYEES"."EMPLOYEE_ID"
是主键。
- 我不想插入 NULL 值;
-
我不知道为什么甲骨文不接受我的条目。我尝试通过执行基本插入来检查表达式中是否存在语法错误:
INSERT INTO EMPLOYEES(INCREASE2)
VALUES ('whatever');
但我仍然收到错误。
我尝试将列修改为不为空
ALTER TABLE EMPLOYEES
MODIFY
(INCREASE2 NUMBER(6) NOT NULL);
And:
02296 00000 - “无法启用 (%s.%s) - 发现空值”
*原因:更改表启用约束失败,因为表
包含不满足约束的值。
*行动:明显
我找到了一个简单的练习解决方案,但我仍然很好奇为什么我的代码没有成功。
解决:
SELECT employee_id, last_name, salary,
ROUND(salary * 1.155, 0) "New Salary",
ROUND(salary * 1.155, 0) - salary "Increase"
FROM employees;