oracle - salida - La compilación PL/SQL falla sin mensaje de error
procedimientos y funciones oracle pl/sql (6)
Mi instalación de APEX ha llegado en forma de pera en una instancia de Oracle 9.2.0.5.0, todos los paquetes no son válidos.
Intenté recompilar todo con DBMS_UTILITY.compile_schema, pero aún así todos los paquetes no son válidos. Entonces, intenté recompilar paquetes individuales,
SQL> ALTER PACKAGE FLOWS_020000.WWV_FLOW_QUERY COMPILE BODY;
Warning: Package Body altered with compilation errors.
SQL> show err
No errors.
SQL>
SQL> ALTER PACKAGE FLOWS_020000.WWV_FLOW_QUERY COMPILE;
Warning: Package altered with compilation errors.
SQL> show err
No errors.
SQL>
nada en el alter log para ello ..
¿Cómo puedo encontrar cuál es el error? ¿No debería "mostrarse err" dármelo?
Conecta como FLOWS_020000 y ve:
SELECT *
FROM ALL_ERRORS
WHERE OWNER = USER;
O conn como SISTEMA e ir
SELECT *
FROM ALL_ERRORS
WHERE OWNER = ''FLOWS_020000'';
Después de renunciar a este problema durante unos meses, luego volviendo a él, lo resolví.
El paquete que estaba tratando de compilar había sido envuelto. Aparentemente, al compilar paquetes empaquetados, debe iniciar sesión como propietario del paquete.
Sospecho que también estaba en juego un error, ya que una investigación más profunda mostró cuando compilaba no como el propietario, el proceso del servidor se estaba quedando sin memoria y agonizando, pero iniciando sesión ya que el propietario del paquete permitió compilar el objeto sin problemas.
Sé que esta respuesta es un poco tarde, pero solo quiero que sepan que también pueden usar:
altere el paquete your_package_name_here compile package;
altere el paquete your_package_name_here compile body;
luego, si se mostró una advertencia, puede usar la secuencia de comandos siguiente para verificar el error y las líneas en las que reside:
muestra el paquete de errores your_package_name_here;
-> esto muestra los errores dentro del paquete
muestra el cuerpo del paquete de errores your_package_name_here;
-> esto muestra los errores dentro del cuerpo del paquete
Tuve el mismo problema hoy. Descubrí que estaba haciendo (como XXX):
alter package XXX.my_package compile body;
Sería un error, y luego un show err
no mostraría ningún error.
Quitando el ''XXX'' me permitió ver los errores.
tratar
SHOW ERRORS PACKAGE BODY FLOWS_020000.WWV_FLOW_QUERY
SHOW ERRORS PACKAGE FLOWS_020000.WWV_FLOW_QUERY