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 original
CREATE 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;