Get source code of procedure and function : user_source « System Tables Data Dictionary « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL> select text from user_source s, user_objects o
  2  where s.name = o.object_name and o.object_type in ('PROCEDURE' , 'FUNCTION')
  3        and rownum < 50
  4  ORDER BY name, line
  5  /

TEXT
--------------------------------------------------------------------------------
procedure delete_cust
(p_Cust_no in number)
as
  l_count number;

begin

   select count(*) into l_count
      from ord
      where cust_no = p_cust_no;
   if l_count != 0 then

TEXT
--------------------------------------------------------------------------------
     raise_application_error(-20000, 'cannot delete active cust');
   end if;
end;
PROCEDURE drop_if_exists(aiv_object_type in varchar2,aiv_object_name in varchar2
) is

cursor c_constraint(aiv_table_name in varchar2) is
select f.table_name,
       f.constraint_name
from   SYS.USER_CONSTRAINTS f,
       SYS.USER_CONSTRAINTS p

TEXT
--------------------------------------------------------------------------------
where  f.constraint_type = 'R'
and    f.r_owner            = p.owner
and    f.r_constraint_name  = p.constraint_name
and    p.table_name         = aiv_table_name;
n_count                             number;
v_sql                                 varchar2(100);
begin
  select count(1)
  into   n_count
  from   SYS.USER_OBJECTS
  where  object_type = upper(aiv_object_type)

TEXT
--------------------------------------------------------------------------------
  and    object_name = upper(aiv_object_name);
  if n_count > 0 then
    if upper(aiv_object_type) = 'TABLE' then
      for r_constraint in c_constraint(upper(aiv_object_name)) loop
        v_sql :=  'alter table '||
          r_constraint.table_name||
          ' drop constraint '||
          r_constraint.constraint_name;
        begin
          execute immediate v_sql;
        exception

TEXT
--------------------------------------------------------------------------------
          when OTHERS then
            dbms_output.put_line(SQLERRM||': '||v_sql);
        end;
      end loop;
    end if;
    v_sql :=  'drop '||aiv_object_type||' '||aiv_object_name;
    begin

49 rows selected.

SQL>








30.97.user_source
30.97.1.Select the source code from USER_SOURCE
30.97.2.Get source code of procedure and function
30.97.3.Query the Oracle data dictionary view USER_SOURCE
30.97.4.When you do a search in the Oracle data dictionary, all object names are in uppercase
30.97.5.Query user_source for procedure declaration