En realidad, si está declarada. eso es un error de Copy+Paste.
El código es:
Código SQL:
Ver originalCREATE OR REPLACE PROCEDURE "IniciarTabla" IS
TYPE t_employ IS TABLE OF EMPLOYEES%ROWTYPE;
t_row t_employ;
BEGIN
SELECT
EMPLOYEE_ID,
FIRST_NAME,
LAST_NAME,
EMAIL,
PHONE_NUMBER,
HIRE_DATE,
JOB_ID,
SALARY,
COMMISSION_PCT,
MANAGER_ID,
DEPARTMENT_ID,
SYSDATE
BULK COLLECT INTO t_row
FROM EMPLOYEES;
FORALL i IN t_row.FIRST .. t_row.LAST
UPDATE EMPLOYEES SET BAJA = SYSDATE
WHERE EMPLOYEE_ID = t_row(i).EMPLOYEE_ID;
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,
t_row(i).FIRST_NAME,
t_row(i).LAST_NAME,
t_row(i).EMAIL,
t_row(i).PHONE_NUMBER,
SYSDATE,
t_row(i).JOB_ID,
t_row(i).SALARY,
t_row(i).COMMISSION_PCT,
t_row(i).MANAGER_ID,
t_row(i).DEPARTMENT_ID);
COMMIT;
END;
y la respuesta:
Código SQL:
Ver originalLine POSITION Text
23 22 PLS-00436: restricción de implementación: no se puede hacer referencia a campos de la tabla de registros BULK In-BIND
23 22 PLS-00382: el tipo de la expresión no es correcto
23 22 PL/SQL: ORA-22806: no es un objeto ni un elemento REF
22 2 PL/SQL: SQL Statement ignored
41 3 PLS-00436: restricción de implementación: no se puede hacer referencia a campos de la tabla de registros BULK In-BIND
41 3 PLS-00382: el tipo de la expresión no es correcto
42 3 PLS-00436: restricción de implementación: no se puede hacer referencia a campos de la tabla de registros BULK In-BIND
42 3 PLS-00382: el tipo de la expresión no es correcto
43 3 PLS-00436: restricción de implementación: no se puede hacer referencia a campos de la tabla de registros BULK In-BIND
43 3 PLS-00382: el tipo de la expresión no es correcto
44 3 PLS-00436: restricción de implementación: no se puede hacer referencia a campos de la tabla de registros BULK In-BIND
44 3 PLS-00382: el tipo de la expresión no es correcto
46 3 PLS-00436: restricción de implementación: no se puede hacer referencia a campos de la tabla de registros BULK In-BIND
46 3 PLS-00382: el tipo de la expresión no es correcto
47 3 PLS-00436: restricción de implementación: no se puede hacer referencia a campos de la tabla de registros BULK In-BIND
1 - 15
Yo entiendo lo que me responde, pero lo que me dice no se ajusta a ningún manual ni ejemplo de BULK COLLECT / FORALL que haya encontrado y que usé como base para esto.
Agradezco cualquier guía.