Tengo in problema que no logro entender y resolver.
Como contexto: Lo estoy trabajando con el Oracle 11g Express, y toda a documentación que encuentro me dice que está bien escrito, sin embargo cuando intento compilarlo, declara un error diciendo que se encontró el símbolo "T_EMPLOY", donde espera := . % (.
Sin embargo la declaración de TYPE se toma correctamente.
¿Por qué no reconoce el tipo? ¿Qué hay que corregir?
Código SQL:
Ver originalCREATE OR REPLACE PROCEDURE "IniciarTabla" IS
BEGIN
TYPE t_employ IS TABLE OF EMPLOYEES%ROWTYPE;
t_row t_employ;
SELECT *
BULK COLLECT INTO t_row
FROM EMPLOYEES;
FORALL i IN t_row.FIRST .. t_row.LAST
UPDATE EMPLOYEES SET BAJA = SYSDATE;
FORALL i IN t_row.FIRST .. t_row.LAST
INSERT INTO EMPLOYEES(
EMPLOYEE_ID,
FIRST_NAME,
LAST_NAME,
EMAIL,
PHONE_NUMBER,
HIRE_DATE,
JOB_ID,
SALARY,
COMMISSION_PCT,
MANAGER_ID,
DEPARTMENT_ID)
VALUES(
EMPLOYEES_SEQ.NEXTVAL,
i.FIRST_NAME,
i.LAST_NAME,
i.EMAIL,
i.PHONE_NUMBER,
SYSDATE,
i.JOB_ID,
i.SALARY
i.COMMISSION_PCT,
i.MANAGER_ID,
i.DEPARTMENT_ID);
COMMIT;
END;