如何编写pl/sql代码来计算7788和7782号员工的工作年限

lc8prwob  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(587)

编写pl/sql代码来计算7788和7782员工的工作年限
然后打印经验最老的员工的信息。
使用引用%rowtype编写代码。
使用适当的日期和数字函数来计算体验。
打印结果如下:

The Oldest Employee Is: CLARK
His Years of Experience: 38

这是我的答案不知道怎么了或者有什么问题

DECLARE 
    EmpInfo emp%ROWTYPE; 
    MaxEx number :=0; 
    EmployeeName emp.ename%TYPE; 
    ExNumber number; 
cursor oldex is select * from emp where EMP.EMPNO = 7788 or EMP.EMPNO = 7782 ; 
BEGIN OPEN oldex; 
    LOOP FETCH oldex into EmpInfo; 
    EXIT WHEN oldex%notfound; 
    ExNumber := (TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')) - TO_NUMBER(TO_CHAR(EmpInfo.hiredate,'YYYY'))); 
    if ExNumber > MaxEx then MaxEx := ExNumber; 
    EmployeeName := EmpInfo.ename; 
END IF; 
END LOOP;

dbms_output.put_line('The oldest employee is: '|| EmployeeName); 
dbms_output.put_line('His year experiance is: '|| MaxEx); 
CLOSE oldex; 
END;
nsc4cvqm

nsc4cvqm1#

您没有看到结果,可能是因为您没有设置serveroutput。例子:

begin
   dbms_output.put_line('hello world');
 end;
 /

PL/SQL procedure successfully completed.

那根绳子去哪了?嗯,它在缓冲区中,您需要告诉您的sql客户机检查缓冲区中的内容并打印它。这样地:

set serveroutput on
begin
 dbms_output.put_line('hello world');
end;
/

hello world

PL/SQL procedure successfully completed.

将此用于块以查看输出。我让你来调试你的代码。

相关问题