declare v_ejob employee.e_job%type; begin select e_job into v_ejob from employee where e_job=( select e_job from (select * from employee order by hiredate desc) where rownum <2); dbms_output.put_line('资格最老的职员为:'||v_ejob); end;改错
时间: 2023-06-19 20:04:47 浏览: 88
sql.rar_exec select_select_sql select from exec_普通sql大全
你提供的 PL/SQL 代码存在一些语法错误,下面是已经修正的代码:
```
DECLARE
v_ejob employee.e_job%type;
BEGIN
SELECT e_job
INTO v_ejob
FROM employee
WHERE e_job = (
SELECT e_job
FROM (
SELECT *
FROM employee
ORDER BY hiredate DESC
)
WHERE rownum < 2
);
dbms_output.put_line('资格最老的职员为:'||v_ejob);
END;
```
修正的内容包括:
1. `DECLARE` 与 `BEGIN` 之间需要一个空格。
2. 在 `SELECT` 语句中,需要给内层的子查询一个别名。
3. `dbms_output.put_line()` 函数的括号中需要使用单引号括起来的字符串。
阅读全文