Plsql 使用过程更新“我的表”中的列

Plsql 使用过程更新“我的表”中的列,plsql,Plsql,,这是我的表格结构,我发现“COMM”列没有任何值,我想使用procedure在“SAL”列的基础上添加值,编写一个程序来添加值我们应该写作业吗?我试着从2天开始做。给我一些线索,我会做的。恩,这个作业在这里做了100次。在此处首先使用搜索框Read,如果无法执行,请返回。在做某事之前,你应该阅读你的选文和课程材料 CREATE TABLE employees ( ENO NUMBER (3), ENAME VARCHAR2 (35), HIREDATE

,这是我的表格结构,我发现“COMM”列没有任何值,我想使用procedure在“SAL”列的基础上添加值,编写一个程序来添加值

我们应该写作业吗?我试着从2天开始做。给我一些线索,我会做的。恩,这个作业在这里做了100次。在此处首先使用搜索框Read,如果无法执行,请返回。在做某事之前,你应该阅读你的选文和课程材料
CREATE TABLE employees
(
   ENO        NUMBER (3),
   ENAME      VARCHAR2 (35),
   HIREDATE   DATE,
   SAL        NUMBER (6),
   EXPR       NUMBER (3),
   DEPTNO     NUMBER (3),
   JOB        VARCHAR2 (20),
   COMM       NUMBER (10)
)
CREATE OR REPLACE PACKAGE XX_UPDATETBEMP
AS
   PROCEDURE  XX_UPDATECOMM;
END XX_UPDATETBEMP;



CREATE or REPLACE  PACKAGE BODY XX_UPDATETBEMP

IS
   PROCEDURE   XX_UPDATECOMM
   IS
   BEGIN
      UPDATE emp
         SET comm =
                CASE
                   WHEN sal BETWEEN 30000 AND 50000 THEN .20 * sal
                   WHEN sal BETWEEN 50000 AND 70000 THEN .15 * sal
       WHEN sal BETWEEN 70000 AND 100000 THEN .10 * sal
                END;
   END XX_UPDATECOMM;
END XX_UPDATETBEMP;
PROCEDURE XX_UDCOMMS IS
    CURSOR C_TBEMP IS
      SELECT * FROM XX_TBEMP;
    l_comm NUMBER;
  BEGIN
    FOR C IN C_TBEMP LOOP
      l_comm := NULL;

      IF C.SAL BETWEEN 30000 AND 49999 THEN
        l_comm := c.sal * 0.2;
      ELSIF C.SAL BETWEEN 50000 AND 79999 THEN
        l_comm := c.sal * 0.15;
      ELSIF C.SAL BETWEEN 80000 AND 99999 THEN
        l_comm := c.sal * 0.1;
      END IF;

      UPDATE XX_TBEMP SET COMM = l_comm WHERE c.eno = eno;
    END LOOP;
  end;