code

오류 메시지 없이 PL/SQL 컴파일이 실패함

starcafe 2023. 10. 30. 21:10
반응형

오류 메시지 없이 PL/SQL 컴파일이 실패함

제 APEX 설치는 Oracle 9.2.0.5.0 인스턴스에 모양을 갖추고 있습니다. 모든 패키지가 올바르지 않습니다.

DBMS_UTILITY.compile_schema로 모든 것을 다시 컴파일하려고 했지만 여전히 모든 패키지가 잘못되었습니다.그래서, 개별 패키지를 다시 컴파일하려고 했고,

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> 

그것에 대한 대안 일지에 아무것도 없습니다.

오류가 무엇인지 어떻게 알 수 있을까요? "show err"이 알려줘야 하는 것 아닌가요?

이 답변이 다소 늦었다는 것을 알고 있지만 다음을 사용할 수도 있다는 것을 알려드리고 싶습니다.

ALTER PACKAGE your_package_name_here COMPILE PACKAGE;

ALTER PACKAGE your_package_name_here COMPILE BODY;

그런 다음 경고가 표시되면 아래 스크립트를 사용하여 오류와 오류가 있는 라인을 확인할 수 있습니다.

-- this shows the errors within the package itself

SHOW ERRORS PACKAGE your_package_name_here;

-- this shows the errors within the package body

SHOW ERRORS PACKAGE BODY your_package_name_here;

FLOWS_020000으로 연결하고 이동:

SELECT *
FROM   ALL_ERRORS
WHERE  OWNER = USER;

또는 시스템으로 연결하고 이동합니다.

SELECT *
FROM   ALL_ERRORS
WHERE  OWNER = 'FLOWS_020000';

몇 달 동안 이 문제를 포기하고 다시 문제를 해결했습니다.

제가 컴파일하려던 소포는 포장되어 있었습니다.포장된 패키지를 컴파일할 때 패키지 소유자로 로그인해야 합니다.

소유자가 아닌 컴파일을 할 때 서버 프로세스의 메모리가 부족하여 죽어가고 있었지만 패키지 소유자가 로그인하면 문제없이 개체를 컴파일할 수 있었습니다.

해라

SHOW ERRORS PACKAGE BODY FLOWS_020000.WWV_FLOW_QUERY
SHOW ERRORS PACKAGE FLOWS_020000.WWV_FLOW_QUERY

잘못된 상태의 Oracle 시스템 개체를 컴파일하는 동안 동일한 문제가 발생했습니다.데이터베이스에 PUBLIC 사용자가 없거나 취소된 권한이 있습니다.

sys 사용자로 연결

SQL> ALTER PACKAGE OWNER.PACKAGE COMPILE BODY;

Warning: Package Body altered with compilation errors.

위의 경고를 받으면 이 작업을 수행합니다.

SQL> show error
Errors for PACKAGE BODY MDSYS.SDO_GEOR:

LINE/COL ERROR
-------- -----------------------------------------------------------------
939/3    PL/SQL: Statement ignored
939/3    PLS-00201: identifier 'DBMS_LOB' must be declared
6959/3   PL/SQL: Statement ignored
6959/3   PLS-00201: identifier 'DBMS_LOB' must be declared
7072/3   PL/SQL: Statement ignored
7072/3   PLS-00201: identifier 'DBMS_LOB' must be declared
7708/5   PL/SQL: Statement ignored
7708/5   PLS-00201: identifier 'DBMS_LOB' must be declared

오류가 나열됩니다.제 경우에는 퍼블릭에서 DBMS_LOB에 대한 권한이 누락되어 있었습니다.

저는 같은 것을 허락했고 패키지를 컴파일 할 수 있었습니다.

SQL> grant execute on dbms_lob to PUBLIC;

Grant succeeded.


SQL> alter package MDSYS.SDO_GEOR compile body;

Package body altered.

이것이 당신에게 도움이 되기를 바랍니다!

저도 오늘 같은 문제가 있었습니다.(XXX로) 수행 중임을 확인했습니다.

alter package XXX.my_package compile body;

오류가 날 수도 있고, 그리고 나서.show err실제로는 오류가 나타나지 않습니다.

'XXX'를 제거하면 오류를 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/283061/pl-sql-compilation-fails-with-no-error-message

반응형