Oracle列子跪求大神改错

qq_47941053 2022-05-28 15:26:33

代码有错求大神改改

declare
    cursor cur_emp
    is select empno,ename,sal,deptno
    from emp;
BEGIN
    for emp_record in cur_emp
    loop
       if emp_record.deptno='SALESMAN' then
       update emp set sal =emp_record .sal where deptno=emp_record.deptno;
       dbms.output.put_line('员工编号:'||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal);
       else if emp_record.deptno='ANALYST' then
       update emp set sal =emp_record .sal where deptno=emp_record.deptno;
       dbms.output.put_line('员工编号:'||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal);
       else if emp_record.deptno='MANAGER' then
       update emp set sal =emp_record .sal where deptno=emp_record.deptno;
       dbms.output.put_line('员工编号:'||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal);
       else if emp_record.deptno='CLERK' then
       update emp set sal =emp_record .sal where deptno=emp_record.deptno;
       dbms.output.put_line('员工编号:'||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal);
       else if  emp_record.deptno='PRESIDENT' then
       update emp set sal =emp_record .sal where deptno=emp_record.deptno;
       dbms.output.put_line('员工编号:'||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal);
       end if;
     end loop;
 end;

ORA-06550: 第 10 行, 第 145 列: 
PLS-00103: 出现符号 ","在需要下列之一时:
 ( - + case mod
   new null <an identifier>
   <a double-quoted delimited-identifier> <a bind variable>
   continue avg count current max min prior sql stddev sum
   variance execute forall merge time timestamp interval date
   <a string literal with character set specification>
   <a number> <a single-quoted SQL string> pipe
   <一个带有字符集说明的可带引号的字符串文字>
   <一个可带引号的 SQL 字符串> purge
符号 "null" 
ORA-06550: 第 13 行, 第 145 列: 
PLS-00103: 出现符号 ","在需要下列之一时:
 ( - + case mod
   new null <an identifier>
   <a double-quoted delimited-identifier> <a bind variable>
   continue avg count current max min prior sql stddev sum
   variance execut
ORA-06550: 第 16 行, 第 145 列: 
PLS-00103: 出现符号 ","在需要下列之一时:
 ( - + case mod
   new null <an identifier>
   <a double-quoted delimited-identifier> <a bind variable>
   continue avg count current max min prior sql stddev sum
   variance execut
ORA-06550: 第 19 行, 第 145 列: 
PLS-00103: 出现符号 ","在需要下列之一时:
 ( - + case mod
   new null <an identifier>
   <a double-quoted delimited-identifier> <a bind variable>
   continue avg count current max min prior sql stddev sum
   variance execut
ORA-06550: 第 22 行, 第 143 列: 
PLS-00103: 出现符号 ","在需要下列之一时:
 ( - + case mod
   new null <an identifier>
   <a double-quoted delimited-identifier> <a bind variable>
   continue avg count current max min prior sql stddev sum
   variance execut
ORA-06550: 第 24 行, 第 10 列: 
PLS-00103: 出现符号 "LOOP"在需要下列之一时:
 if
 

 

...全文
81 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

在scott用户模式下创建匿名PL/SQL程序块,按照以下加薪比例(加薪规则:职位SALESMAN和ANALYST的员工,上调15%;职位MANAGER的员工,上调20%;职位CLERK的员工,上调25%;职位PRESIDENT的员工,上调30%)对scott模式emp表中的员工工资进行加薪,并将加薪前后的数据在控制台输出,输出格式为“员工编号:%empno%,员工姓名:%empname%,所在部门编号:%deptno%,原工资:%oldsalary%,调整后工资:%newsalary%”

  • 打赏
  • 举报
回复

set serveroutput on;
declare
cursor cur_emp
is select empno,ename,sal,deptno
from emp;
BEGIN
for emp_record in cur_emp
loop
if emp_record.deptno='SALESMAN' then
update emp set sal =emp_record .sal1.15 where deptno=emp_record.deptno;
dbms.output.put_line(‘员工编号:’||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal
1.15);
elseif emp_record.deptno='ANALYST' then
update emp set sal =emp_record .sal1.15 where deptno=emp_record.deptno;
dbms.output.put_line(‘员工编号:’||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal
1.15);
else if emp_record.deptno='MANAGER' then
update emp set sal =emp_record .sal1.2 where deptno=emp_record.deptno;
dbms.output.put_line(‘员工编号:’||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal
1.2);
elseif emp_record.deptno='CLERK' then
update emp set sal =emp_record .sal1.25 where deptno=emp_record.deptno;
dbms.output.put_line(‘员工编号:’||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal
1.25);
elseif emp_record.deptno='PRESIDENT' then
update emp set sal =emp_record .sal1.3 where deptno=emp_record.deptno;
dbms.output.put_line(‘员工编号:’||emp_record.empno||'员工姓名'||emp_record.ename||',所在部门编号:'||emp_record.deptno||,'原工资'||emp_record.sal||',调整后工资:'||emp_record.sal
1.3);
end if;
end loop;
end;
/

发帖
基础和管理

1.7w+

社区成员

Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
帖子事件
创建了帖子
2022-05-28 15:26
社区公告
暂无公告