更新plsql匿名块

时间:2015-11-22 13:06:23

标签: sql database oracle plsql

我尝试更新表格中的新列' EMP'使用空值创建的。这三列是deptnosallevl

我创建了一个plsql块来更新这些列值,如下所示:

declare
  cursor c is select dept_no,sal,levl from emp;
  v_dept_no number;
  v_sal number;
  v_levl number;
  v_comm number;
  v_update varchar2(1000);
begin
  open c;

  loop
    fetch c into v_dept_no,v_sal,v_levl;
    exit when c% notfound;
    v_update:='update emp
      set dept_no='||:dept_no||','||'sal='||:sal||','||'levl='||:level||' '||
      'where emp_no='||:emp_no;
  end loop;
  dbms_output.put_line(v_dept_no||':'||'|'||v_sal||':'||'|'||'comm: '||v_comm);

  close c;
end;
/

但我的代码一直给我一个错误:"错误报告-Missing定义"

我需要在该块中创建case语句以根据需求更新值,但我不知道我必须在哪里创建它!

输出必须是我写的dbms语句

dbms_output.put_line(v_dept_no||':'||'|'||v_sal||':'||'|'||'comm: '||v_comm);

要求是:创建三个新列并创建代码,通过基于工资X动态插入佣金的案例陈述来更新它们。

喜欢:

dept_no:10|sal:110|comm:0.01
dept_no:20|sal:500|comm:0.0
levl:3|sal:1000
else sal:100|comm:0.05

值必须是动态的,

0 个答案:

没有答案