PL/SQL 저장 프로그램 텍스트에 대한 질문
-
20-09-2019 - |
문제
나는 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.