【发布时间】:2018-08-21 12:56:17
【问题描述】:
使用游标创建 PL / SQL 块以更新员工表上的工资列,来自通过键盘输入的在特定部门工作的员工。 工资按规定涨:
- 如果员工不满16岁,加薪15%
- 如果员工工作年限在16-20年之间,加薪20%
- 如果员工20岁以上,加薪25%
在更新后的员工表上显示employee_id、last_name、旧工作、新薪水。
输入 d_id 的值:30
EMPLOYEE_ID LAST_NAME LAMAKERJA SALARY
----------- ------------------------- ---------- ----------
119 Colmenares 16.1452239 3000
118 Himuro 16.8794705 3120
116 Baida 17.7726212 3480
117 Tobias 18.1917992 3360
115 Khoo 20.3781006 3720
114 Raphaely 20.8219362 13200
6 rows selected.
【问题讨论】:
-
写家庭作业的人显然不明白,在单个 UPDATE 语句中不使用 PL/SQL 执行此操作效率更高。没有理由为此使用游标。这是在教授糟糕的编码风格。
-
帮我解决这个问题
-
家庭作业可以这样进行,以在记录中显示一个非常简单的循环。但只要他自己不尝试任何事情,他学会说“请”,没有人会帮忙。
-
这在解释或清楚地说明要求时也存在问题。如前所述,该问题有 3 个标准,但有 2 个不同的方面:基于年龄的第 1 和第 3,但基于工作年限的第 2。当单个员工满足 0 或 2 个条件时会发生什么。示例:一名 19 岁,工作时间为 2 年。符合 0 个标准。加薪0%? 38岁,工作18年。符合 2 个标准(第 2 和第 3)。获得 20%、25% 或 45% 的加薪?答案可能会彻底改变解决方案的形状。