#oracle #plsql
Вопрос:
DECLARE
v_annual_salary NUMBER;
BEGIN
SELECT SAL * 12 INTO v_annual_salary
FROM EMP,DEPT
WHERE EMPNO = 7722;
DBMS_OUTPUT.PUT_LINE ('Annual Salary of 7722 is ' || TO_CHAR(v_annual_salary));
END;
/
Ответ №1:
Если DEPT
таблица не содержит ни одной строки, этот запрос будет возвращен TOO_MANY_ROWS
. Почему вы объединяетесь EMP
и DEPT
? Должно было быть просто
SQL> declare
2 v_annual_salary number;
3 begin
4 select sal * 12
5 into v_annual_salary
6 from emp
7 where empno = 7934;
8
9 dbms_output.put_line('Annual salary of 7934 is ' || to_char(v_annual_salary));
10 end;
11 /
Annual salary of 7934 is 15600
PL/SQL procedure successfully completed.
SQL>
(В моем EMP
столе нет сотрудника, которого EMPNO = 7722
я использовал 7934
).