| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Copying a Package from with a Stored Procedure
Justin,
if you use the following procedure:
create or replace function execute_immediate( stmt in varchar2 )
return number
as
exec_cursor integer default dbms_sql.open_cursor;
rows_processed number default 0;
begin
dbms_sql.parse(exec_cursor, stmt, dbms_sql.native );
rows_processed := dbms_sql.execute(exec_cursor);
dbms_sql.close_cursor( exec_cursor );
return rows_processed;
exception
when others then
if dbms_sql.is_open(exec_cursor) then
dbms_sql.close_cursor(exec_cursor);
end if;
raise;
end;
/
And you have
You could (not syntax checked below, writing this from scratch, the above routine definitely works...)
procedure copyproc( p_owner in varchar2, p_name in varchar2 ) is
l_cmd varchar2(32000);
l_last_type varchar2(30);
begin
for x in ( select text, type from all_source
where owner = upper(p_owner) and name = upper(p_name)
order by type, line )
loop
if ( l_last_type is null ) then
l_last_type := x.type;
end if;
if ( l_last_type <> x.type ) then
execute_immediate( l_cmd );
l_cmd := NULL;
end if;
l_cmd := l_cmd || x.text;
Again, you need direct access when using the stored procedure, not via a role...
On Thu, 19 Dec 1996 15:49:47 -0500, Justin Fidler <justin_at_club.cc.cmu.edu> wrote:
>
>Is there an easy way to copy a package body and spec, from within a
>stored procedure (i.e., without using SQL*Plus, etc.)? I can get the
>source from the data dictionary views, but how do I pass it to the
>compiler to compile it as a package? Can I just insert into the data
>dictionary?
>
>My ultimate goal is to have a stored procedure that will copy all the
>packages owned by another user into my own schema, so I can mess around
>with them without damaging production code. I want this to be an
>automated process entirely within the datbase, so I can perform the
>transfer on a routine basis, based on certain events.
>
>Thanks,
>Justin Fidler
>justin+@cmu.edu / justin_at_intraactive.com
>
>
Thomas Kyte
Oracle Government
tkyte_at_us.oracle.com
![]() |
![]() |