Crear validación del tipo función que devuelve valor booleano con este cuerpo y poner en el mensaje de error: El formato de alguno de los DNI's no es correcto
DECLARE
v_NIF VARCHAR2(1); -- Variable que contendrá la letra del DNI
BEGIN
FOR i in 1..apex_application.g_f04.count LOOP
-- Si el DNI tiene 9 dígitos, los 8 primeros son numeŕicos y el último es una letra seguimos
IF LENGTH(TRIM(apex_application.g_f04(i))) = 9 AND IS_NUMBER(SUBSTR(TRIM(apex_application.g_f04(i)), 1, 8)) AND NOT
IS_NUMBER(SUBSTR(TRIM(apex_application.g_f04(i)), 9, 1)) THEN
-- Calculamos la letra del DNI
SELECT SUBSTR('TRWAGMYFPDXBNJZSQVHLCKET',MOD(SUBSTR(apex_application.g_f04(i), 1, 8),23)+1,1) INTO v_NIF FROM dual;
-- Si la letra del DNI es incorrecta devolvemos falso
IF SUBSTR(TRIM(apex_application.g_f04(i)), 9, 1) <> v_NIF OR v_NIF IS NULL THEN
RETURN FALSE;
END IF;
ELSE
RETURN FALSE;
END IF;
END LOOP;
-- Si hemos salido del bucle quiere decir que todos los DNIs son correctos
RETURN TRUE;
END;