Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新plsql匿名块中的列值_Sql_Database_Oracle_Plsql - Fatal编程技术网

更新plsql匿名块中的列值

更新plsql匿名块中的列值,sql,database,oracle,plsql,Sql,Database,Oracle,Plsql,我试图更新表“EMP”中的一个新列,该列是用空值创建的。这三列是deptno,sal,levl 我创建了一个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

我试图更新表“EMP”中的一个新列,该列是用空值创建的。这三列是
deptno
sal
levl

我创建了一个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;
/
但我的代码一直给我一个错误:“错误报告-缺少定义”

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

输出必须与我编写的dbms语句相同

dbms_output.put_line(v_dept_no||':'||'|'||v_sal||':'||'|'||'comm: '||v_comm);
要求是:创建三个新列,并创建代码,通过基于salary X dynamic inserted commission的case语句对其进行更新

比如:

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

这些值必须是动态的,

poring网站上显示的内容。。没有身体帮助:StackOverflow上的Panswer来自志愿者。您与我们没有SLA,您无权立即得到响应。我不明白您为什么需要动态SQL。首先,为什么要使用游标(也称为“慢慢来”)方法。据我所知,PL/SQL块是一种非常复杂的混淆简单语句的方法,如
updateemp set dept\u no=:dept\u no,sale=:sal,levl=:level,其中emp\u no=:emp\u no
?为什么你只打印光标的最后一行?请正确地澄清你的问题,这样你会得到一个好的回答。根据这个问题,我看不出使用复杂的PLSQL有什么意义。作为@a_horse_,注释中没有正确说明名称