2011-01-11 4 views
3

오라클에서 299 번 라인에 문제가 있다는 스택 추적이 있습니다. 문제가없는 패키지의 해당 라인을 살펴본 후 변수를 1로 설정하는 초기화 블록의 라인이라고 말합니다. 오류를 발생시킨 프로 시저를 호출하지 않습니다.Oracle 스택 추적 행 번호가 소스 코드와 일치하지 않습니다!

스택 추적의 줄 번호를 기준으로 서버가 실행중인 내용과 패키지 원본을 볼 때 표시되는 내용이 일치하지 않는 것처럼 보입니다.

패키지를 살펴본 방법 : PL/SQL Developer를 사용하고 객체 브라우저의 패키지 이름에 "View Pacakge"를 클릭했습니다. 소스 제어에서 동일한 패키지를 살펴볼 때 299 행의 오류가 발생합니다 (실패한 프로 시저에 대한 호출입니다).

제 질문은 : WTF가 진행되고 있습니까? Oracle에 pacakge 소스를 요청할 때 스택 추적 행 번호와 일치하지 않는 소스 코드를 얻는 이유는 무엇입니까?

(오라클 10g)

+0

@ 마이크 아틀라스 : 이것은 나에게 일어난 처음과 나 (내 동료의 devs 및 DBA)이 내 정신에 의문을 만들고있다. 해결책이 마침내 드러났을 때 많이 얼굴을 찡 그릴지도 모릅니다. – FrustratedWithFormsDesigner

답변

1

그래서 내 스크립트는 API_USR.SOME_PACKAGE을 참조하고 있었고 READONLY_USR으로 로그인했으며 READONLY_USRSOME_PACKAGE의 이전 버전을 소유하고있는 것으로 나타났습니다. 내가 API_USR.SOME_PACKAGE을 통해 READONLY_USR을 보았을 때 올바른 소스 코드를 얻었습니다.

얼굴을 손바닥

+0

Oracle SQL Developer를 간단하게 사용할 때 나는 보통 잘못된 라인 번호를 얻는다. 쿼리 (10 ~ 15 행) 그래서 적어도 지금 당신의 문제를 과거있어. –

+1

@Mike Atlas : 저는 Oracle SQL Developer (그리고 현재 Allround Automation의 PL/SQL Developer에서 제가 사용하고있는 것 같습니다)라고 생각합니다. 반환되는 줄 번호는 * 문의 첫 줄에 비례합니다. 따라서 워크 시트에 3 개의 쿼리가있는 경우 텍스트 파일의 30 번째 줄부터 시작하는 Query3이 표시 될 수 있지만 * Query3 만 실행하면 Oracle은 1 번째 줄부터 시작합니다 (쿼리 위치를 알지 못하기 때문에 파일에서). – FrustratedWithFormsDesigner

1

나는 당신이 이미 PL/SQL 개발자에 오픈 해당 패키지의 소스를 가지고 생각합니다. 소스보기를 다시 선택하면 소스를 다시로드하지 않고 이전에 연 편집기를 활성화합니다.

+0

흠 그 패키지에 대한 모든 편집자를 닫았습니다 (처음으로 패키지보기를 시도했을 때 열린 편집기가 하나뿐입니다). Object Browse에서 패키지를 마우스 오른쪽 버튼으로 클릭하고 "새로 고침"을 선택했습니다. 그런 다음 마우스 오른쪽 버튼을 클릭하고보기를 선택했습니다. 그런 다음 다시 이전 코드를 봅니다. 나는 오라클이 아닌 PL/SQL Developer 버크 (quirk)이라면 놀랍지 않을 것이다. 그러나이 시점에서 나는 말할 수 없다 ... – FrustratedWithFormsDesigner

관련 문제