IN и OUT относительно чего? Ни один из параметров не является на данный момент. Похоже, вы хотите, чтобы оба этих параметра были параметрами OUT, а идентификатор сотрудника - параметром IN, что-то вроде:
CREATE OR REPLACE PROCEDURE FYI_CENTER(my_id IN number, my_email OUT varchar2,
my_salary OUT varchar2) AS
BEGIN
SELECT email, salary INTO my_email, my_salary
FROM employees WHERE employee_id = my_id;
END;
... который вы называете что-то вроде:
DECLARE
my_email employees.email%TYPE;
my_salary employees.salary%TYPE;
BEGIN
FYI_CENTER(101, my_email, my_salary);
DBMS_OUTPUT.PUT_LINE('My email = ' || my_email);
DBMS_OUTPUT.PUT_LINE('My salary = ' || my_salary);
END;
Вы не можете указать точный формат входных и выходных переменных (`% TYPE ') в процедуре, просто общий формат.
Как указал Тони, вы можете объявить процедуру следующим образом:
CREATE OR REPLACE PROCEDURE FYI_CENTER(my_id IN employees.employee_id%TYPE,
my_email OUT employees.email%TYPE
my_salary OUT employees.salary%TYPE) AS
BEGIN
...