문제 설명
18C 업그레이드의 일부로 OWA_UTIL.who_called_me에서 변경된 사항은 무엇입니까? (What are the changes done in OWA_UTIL.who_called_me as part of 18C upgrade?)
OWA_UTIL.WHO_CALLED_ME(
owner OUT VARCHAR2,
name OUT VARCHAR2,
lineno OUT NUMBER,
caller_t OUT VARCHAR2);
이 프로시저는 이를 호출한 PL/SQL 코드 단위에 대한 정보(출력 매개변수 형식)를 반환합니다. Oracle 18C 업그레이드의 일부로 발생한 변경 사항이 있습니까? 이름 변수가 이제 프로시저 이름과 함께 패키지 이름을 갖게 된다고 들었습니다. 이전에는 단지 proc/function 이름이었습니다
참조 솔루션
방법 1:
In 11g OWA_UTIL.WHO_CALLED_ME
returned the fact that the caller was a package, but did not include the name of the procedure within the package. You had to determine the calling procedure by using the line number returned by WHO_CALLED_ME
and examining the source code of the package body. 11g dbfiddle here
In 18c the NAME
returned by WHO_CALLED_ME
includes both the package name and the procedure name within the package. The line number is still returned. 18c dbfiddle here
(by Shashi、Bob Jarvis ‑ Слава Україні)