【发布时间】:2021-09-05 01:00:14
【问题描述】:
这是我查找最高和最低工资员工的查询,如下:
create or replace procedure Minmax
( H_EMP_NO OUT EMP.EMPNO%TYPE, L_EMP_NO OUT EMP.EMPNO%TYPE)
IS
BEGIN
SELECT EMPNO INTO H_EMP_NO FROM EMP
WHERE SAL = (SELECT MAX(SAL) FROM EMP);
SELECT EMPNO INTO L_EMP_NO FROM EMP
WHERE SAL = (SELECT MIN(SAL) FROM EMP);
END minmax;
DECLARE
H_EMP_NO EMP.EMPNO%TYPE;
L_EMP_NO EMP.EMPNO%TYPE;
H_SAL EMP.SAL%TYPE;
L_SAL EMP.SAL%TYPE;
BEGIN
Minmax(H_EMP_NO, L_EMP_NO);
SELECT SAL INTO H_SAL FROM EMP
WHERE EMPNO = H_EMP_NO;
SELECT SAL INTO L_SAL FROM EMP
WHERE EMPNO = L_EMP_NO;
DBMS_OUTPUT.PUT_LINE(H_EMP_NO || ' HAVE MAXIMUM SALARY = ' || H_SAL);
DBMS_OUTPUT.PUT_LINE(L_EMP_NO || ' HAVE MINIMUM SALARY = ' || L_SAL);
END;
我记得几天前我运行了相同的查询,它工作正常,但现在它说 PLS-00103:遇到符号“DECLARE”
我想提一下,我在 Declare 之前尝试过使用 / symbol,但随后它说: PLS-00103:遇到符号“/”
【问题讨论】:
-
那些似乎是一个过程和一个匿名块,而不是查询。
-
在 PL/SQL Developer 中,您应该在程序窗口中打开过程代码,并将其保存为 .prc 文件或其他约定的扩展名(可在首选项设置中配置)。您可以将测试窗口用于匿名块,并使用 .tst 扩展名保存它们。
标签: sql oracle plsql oracle11g plsqldeveloper