programing

빈 패키지 정의(공용 구성원 없음)

sourcejob 2023. 10. 26. 20:58
반응형

빈 패키지 정의(공용 구성원 없음)

Oracle SQL Developer가 입력 매개 변수가 없는 공용 구성원(프로시저)을 표시하지 않는 패키지를 실행하거나 디버그하려고 할 때 문제가 발생합니다.

몇 가지 프로시저가 있고 일부 오버로드가 있지만 Oracle SQL Developer에는 호출 가능한 멤버가 표시되지 않습니다.

enter image description here

다음 버전의 Oracle SQL Developer를 사용해 보았습니다.

  • 4.1.1.19 이 버전이 문제를 해결했다는 기사 링크 하지만 그렇지 않았습니다.
  • 4.0.3.16 - 동일한 거동
  • 4.0.0.13 - 동일한 동작
  • 3.2.20.09 - 이 버전은 실제로 호출할 수 없는 멤버를 표시했지만 디버거는 작동하지 않습니다.

Oracle 버전입니다.

select * from v$version;

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE   11.2.0.4.0  Production"
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

비슷한 상황을 성공적으로 해결한 사람이 있습니까? (데이터베이스 업그레이드는 옵션 atm이 아닙니다.)

좀 늦었지만 도와줄 수는 있었습니다.SqlDeveloper 버그가 있습니다.제가 해야 할 일은 컴파일하기 전에 저장하는 것입니다.

도움이 되길 바랍니다.

공공 구성원이 아닌 문제를 일으킬 수 있는 2가지 가능한 원인을 찾았습니다.

1) SQL 개발자는 일종의 버그 자체를 쳤습니다.SQL 개발자를 완전히 닫고 다시 시작하면 이 문제를 해결할 수 있습니다.

2) 코드에 사용된 일부 키워드(예: SQL 문의 필드 이름)는 컴파일된 실행에서는 잘 작동하지만 함수 목록의 표시를 망칠 수 있습니다.

저는 "CASE"라는 필드가 사용되는 패키지 전체에 더블 견적을 적용하여 문제를 해결했습니다.

즉, 표 1에서 선택.case From Table 1

로 바꾸다

표 1을 선택합니다."표 1의 경우"

알렉스야.

확실히 늦었지만, 같은 문제를 발견하고 저에게 도움이 된 것을 게시하려고 생각했습니다.

프로시저가 다른 사용자에게 속한 패키지에 포함되어 있었고 프로시저를 호출하던 사용자에게 부여가 제공되지 않았습니다.

보조금 지급이 완료되면 작동합니다.

저장된 프로시저를 저장한 후 컴파일하는 것을 추천합니다.경우에 따라서는 절차를 저장한 후 테이블이 자동으로 컴파일됩니다.하지만 변화를 줄 때마다 저장해야 합니다.

이것이 당신에게 도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/32580687/empty-package-package-name-definition-no-public-members

반응형