Я пытаюсь определить, почему eID ничего не возвращает во время вывода. Процедура и декларация ниже.
Особой проблемой является "dbms_output.put_line ('Информация для сотрудника #' || eID);
Я ожидаю, что он вернет введенный eID. Поэтому в приведенном ниже примере я ввел '1 ', поэтому я ожидаю, что на выходе также появится' 1 '.
CREATE OR REPLACE PROCEDURE get_empDetails(
eID IN EMPLOYEES.employeeID%type,
fName OUT EMPLOYEES.firstName%type,
lName OUT EMPLOYEES.lastName%type,
dNAME OUT DEPARTMENTS.departmentNAME%type)
AS
BEGIN
SELECT firstName, lastName, departmentNAME
INTO fName, lName, dNAME
FROM EMPLOYEES e
JOIN DEPARTMENTS d
ON e.departmentID = d.departmentID
WHERE e.employeeID = eID;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid employee ID');
END;
----
declare
eID number(20);
fname varchar(20);
lname varchar(20);
deptName varchar(20);
begin
get_empDetails(1, fname,lname,deptName);
dbms_output.put_line('Information for employee #'|| eID);
dbms_output.put_line('Employee Full name : '||fname ||' '|| lname);
dbms_output.put_line('Department Name : '||deptName);
end;
---
Result:
Statement processed.
Information for employee #
Employee Full name : Alice Smith
Department Name : Human Resources