오류 메시지 없이 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
'code' 카테고리의 다른 글
자바스크립트 배열을 사용하여 집합 차이를 계산하는 가장 빠르고 우아한 방법은 무엇입니까? (0) | 2023.10.30 |
---|---|
아콘다 루트 환경 재설정 방법 (0) | 2023.10.30 |
PowerShell에서 Windows Credential Manager 액세스 (0) | 2023.10.30 |
#토큰 없이 식별자 정의 (0) | 2023.10.30 |
팬더 하이퍼링크로 읽기_excel (0) | 2023.10.30 |