Frage zu PL / SQL gespeicherten Programmtext
-
20-09-2019 - |
Frage
Ich verwende TOAD meine PL / SQL-Entwicklung zu tun. In TOAD, wenn ich eine Prozedur Namen ein und drücken f4 geben, kann ich diese Prozedur den Quellcode sehen. Ich denke, TOAD den Quellcode von v $ SQLTEXT Ansicht. Um meine Gedanken zu bestätigen, schrieb ich eine Abfrage:
select * from v$sqltext
aber wenn ich die obere Abfrage ausführen, Oracle geben Sie mir eine Fehlermeldung:
ORA-00942: Tabelle oder Sicht nicht existieren 00942. 00000 - „Tabelle oder Sicht ist nicht vorhanden“ * Ursache:
* Aktion: Fehler in Zeile: 29 Column: 15
So denke ich, TOAD das Verfahren der Quelle von anderen Ort erhalten statt v $ SQLTEXT Ansicht. Wer kann mir darüber erzählen? Großer Dank.
Lösung
Die vollständige Abfrage für eine gespeicherte Prozedur (nicht in einem Paket):
select text
from all_source
where owner = 'MYSCHEMA'
and type = 'PROCEDURE'
and name = 'MY_PROCEDURE'
order by line;
Wenn Sie sich als Benutzer MYSCHEMA verbunden sind, als Sie USER_SOURCE verwenden können:
select text
from user_source
where type = 'PROCEDURE'
and name = 'MY_PROCEDURE'
order by line;
Andere Werte für TYPE sind:
- TYPE BODY
- FUNKTION
- TRIGGER
- TYPE
- JAVA SOURCE
- PAKET BODY
- PAKET
Andere Tipps
select * from all_source
Siehe Datenbankverweis für ALL_SOURCE und V $ SQLTEXT .
Wenn Sie wählen priv auf DBA * Tabellen, dann überprüfe heraus select * from dba_source
. Diese Tabelle wird die gesamte Quellcode hat.