문제

나는 Toad를 사용하여 PL/SQL 개발을 수행합니다. Toad에서 프로 시저 이름을 입력하고 F4를 누르면이 절차의 소스 코드를 볼 수 있습니다. 나는 Toad가 v $ sqltext view에서 소스 코드를 얻는다고 생각합니다. 내 생각을 확인하기 위해 쿼리를 썼습니다.

select * from v$sqltext

그러나 상단 쿼리를 실행하면 Oracle은 나에게 오류를 준다.

ORA -00942 : 테이블 또는보기가 존재하지 않습니다 00942. 00000- "테이블 또는보기가 존재하지 않습니다" *원인 :
*조치 : 라인의 오류 : 29 열 : 15

그래서 나는 Toad가 v $ sqltext보기 대신 다른 장소에서 절차의 소스를 얻는다고 생각합니다. 누구든지 이것에 대해 말할 수 있습니까? 감사합니다.

도움이 되었습니까?

해결책

The full query for a stored procedure (not in a package):

select text
from   all_source
where  owner = 'MYSCHEMA'
and    type = 'PROCEDURE'
and    name = 'MY_PROCEDURE'
order by line;

If you are connected as user MYSCHEMA than you can use USER_SOURCE:

select text
from   user_source
where  type = 'PROCEDURE'
and    name = 'MY_PROCEDURE'
order by line;

Other values for TYPE are:

  • TYPE BODY
  • FUNCTION
  • TRIGGER
  • TYPE
  • JAVA SOURCE
  • PACKAGE BODY
  • PACKAGE

다른 팁

select * from all_source

See Database Reference for ALL_SOURCE and V$SQLTEXT.

If you have select priv on DBA* tables, then do check out select * from dba_source. This table will have the entire source code.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top