Re: Query for specific procedure's source code
From: Maxim Demenko <mdemenko_at_gmail.com>
Date: Sun, 01 Mar 2009 10:54:47 +0100
Message-ID: <49AA5B67.7000406_at_gmail.com>
Michael Austin schrieb:
> Adam Cameron wrote:
>
>
> when posting an issue such as this, it is helpful if you include the
> full version (ie: 9.2.0.?)
>
> Check out:
> Summary of DBMS_METADATA Subprograms
> http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96612/d_metad2.htm#1028659
>
>
> search for "procedure" on that page...
Date: Sun, 01 Mar 2009 10:54:47 +0100
Message-ID: <49AA5B67.7000406_at_gmail.com>
Michael Austin schrieb:
> Adam Cameron wrote:
>> Hi >> Is there any way one can query for a specific procedure's source code, >> rather than the entire package body that it's within? >> >> I know I can query user_source for the package body, or for >> stand-alone procs, but I'm struggling to find a nice way of pulling >> out just the code for a specific proc within the package. >> >> I suppose I can pull out everything between the start of the proc I >> want through to the start of the next proc, but I'd've thought there'd >> be a more elegant way of doing it than that? >> >> I'm looking _at_ Oracle 9i at present, but I'd be keen to know about >> solutions for other releases too. Any thoughts _at_ all, really. >>
>
>
> when posting an issue such as this, it is helpful if you include the
> full version (ie: 9.2.0.?)
>
> Check out:
> Summary of DBMS_METADATA Subprograms
> http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96612/d_metad2.htm#1028659
>
>
> search for "procedure" on that page...
Afaik, there is no such method in Oracle.
You can get the whole package source (either from *_source or with
dbms_metadata ), but then you have to parse it to obtain a code for
particular packaged procedure/function.
I personally would avoid to write a plsql parser in plsql.
Perl,python,java,whatever else are much better suitable for that (it is
not as trivial as to search for "procedure foo", even not with
"regexp_like(text,"procedure\s+foo") etc).
Best regards
Maxim Received on Sun Mar 01 2009 - 03:54:47 CST