更新plsql匿名块中的列值
我试图更新表“EMP”中的一个新列,该列是用空值创建的。这三列是更新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
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_,注释中没有正确说明名称