<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FSystem_Tables_Data_Dictionary%2Fuser_source</id>
		<title>Oracle PL/SQL Tutorial/System Tables Data Dictionary/user source - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FSystem_Tables_Data_Dictionary%2Fuser_source"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Tables_Data_Dictionary/user_source&amp;action=history"/>
		<updated>2026-05-26T15:07:22Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Tables_Data_Dictionary/user_source&amp;diff=3957&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Tables_Data_Dictionary/user_source&amp;diff=3957&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Tables_Data_Dictionary/user_source&amp;diff=3958&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Tables_Data_Dictionary/user_source&amp;diff=3958&amp;oldid=prev"/>
				<updated>2010-05-26T10:08:12Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Get source code of procedure and function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select text from user_source s, user_objects o&lt;br /&gt;
  2  where s.name = o.object_name and o.object_type in (&amp;quot;PROCEDURE&amp;quot; , &amp;quot;FUNCTION&amp;quot;)&lt;br /&gt;
  3        and rownum &amp;lt; 50&lt;br /&gt;
  4  ORDER BY name, line&lt;br /&gt;
  5  /&lt;br /&gt;
TEXT&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
procedure delete_cust&lt;br /&gt;
(p_Cust_no in number)&lt;br /&gt;
as&lt;br /&gt;
  l_count number;&lt;br /&gt;
begin&lt;br /&gt;
   select count(*) into l_count&lt;br /&gt;
      from ord&lt;br /&gt;
      where cust_no = p_cust_no;&lt;br /&gt;
   if l_count != 0 then&lt;br /&gt;
TEXT&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
     raise_application_error(-20000, &amp;quot;cannot delete active cust&amp;quot;);&lt;br /&gt;
   end if;&lt;br /&gt;
end;&lt;br /&gt;
PROCEDURE drop_if_exists(aiv_object_type in varchar2,aiv_object_name in varchar2&lt;br /&gt;
) is&lt;br /&gt;
cursor c_constraint(aiv_table_name in varchar2) is&lt;br /&gt;
select f.table_name,&lt;br /&gt;
       f.constraint_name&lt;br /&gt;
from   SYS.USER_CONSTRAINTS f,&lt;br /&gt;
       SYS.USER_CONSTRAINTS p&lt;br /&gt;
TEXT&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
where  f.constraint_type = &amp;quot;R&amp;quot;&lt;br /&gt;
and    f.r_owner            = p.owner&lt;br /&gt;
and    f.r_constraint_name  = p.constraint_name&lt;br /&gt;
and    p.table_name         = aiv_table_name;&lt;br /&gt;
n_count                             number;&lt;br /&gt;
v_sql                                 varchar2(100);&lt;br /&gt;
begin&lt;br /&gt;
  select count(1)&lt;br /&gt;
  into   n_count&lt;br /&gt;
  from   SYS.USER_OBJECTS&lt;br /&gt;
  where  object_type = upper(aiv_object_type)&lt;br /&gt;
TEXT&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
  and    object_name = upper(aiv_object_name);&lt;br /&gt;
  if n_count &amp;gt; 0 then&lt;br /&gt;
    if upper(aiv_object_type) = &amp;quot;TABLE&amp;quot; then&lt;br /&gt;
      for r_constraint in c_constraint(upper(aiv_object_name)) loop&lt;br /&gt;
        v_sql :=  &amp;quot;alter table &amp;quot;||&lt;br /&gt;
          r_constraint.table_name||&lt;br /&gt;
          &amp;quot; drop constraint &amp;quot;||&lt;br /&gt;
          r_constraint.constraint_name;&lt;br /&gt;
        begin&lt;br /&gt;
          execute immediate v_sql;&lt;br /&gt;
        exception&lt;br /&gt;
TEXT&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
          when OTHERS then&lt;br /&gt;
            dbms_output.put_line(SQLERRM||&amp;quot;: &amp;quot;||v_sql);&lt;br /&gt;
        end;&lt;br /&gt;
      end loop;&lt;br /&gt;
    end if;&lt;br /&gt;
    v_sql :=  &amp;quot;drop &amp;quot;||aiv_object_type||&amp;quot; &amp;quot;||aiv_object_name;&lt;br /&gt;
    begin&lt;br /&gt;
49 rows selected.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Query the Oracle data dictionary view USER_SOURCE==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; --&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace function getArea (i_rad NUMBER)&lt;br /&gt;
  2  return NUMBER&lt;br /&gt;
  3  is&lt;br /&gt;
  4  begin&lt;br /&gt;
  5    return 3.14*(i_rad**2);&lt;br /&gt;
  6  end;&lt;br /&gt;
  7  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select text&lt;br /&gt;
  2  from user_source&lt;br /&gt;
  3  where name = &amp;quot;GETAREA&amp;quot;&lt;br /&gt;
  4  order by line;&lt;br /&gt;
 /&lt;br /&gt;
TEXT&lt;br /&gt;
-------------------------------------------------------------------------&lt;br /&gt;
function getArea (i_rad NUMBER)&lt;br /&gt;
return NUMBER&lt;br /&gt;
is&lt;br /&gt;
begin&lt;br /&gt;
  return 3.14*(i_rad**2);&lt;br /&gt;
end;&lt;br /&gt;
6 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Query user_source for procedure declaration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE compile_error AS&lt;br /&gt;
  2       myDateTime timestamp;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     SELECT systimestamp INTO myDateTime FROM dual;&lt;br /&gt;
  5     DBMS_OUTPUT.PUT_LINE(myDateTime);&lt;br /&gt;
  6  EXCEPTION&lt;br /&gt;
  7     WHEN OTHERS&lt;br /&gt;
  8     THEN&lt;br /&gt;
  9        DBMS_OUTPUT.PUT_LINE(SQLERRM);&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT line||&amp;quot; &amp;quot;||text PROCEDURE FROM user_source WHERE name = &amp;quot;COMPILEERROR&amp;quot;;&lt;br /&gt;
PROCEDURE&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
1 PROCEDURE CompileError&lt;br /&gt;
2    AS&lt;br /&gt;
3      v_timestamp timestamp;&lt;br /&gt;
4 BEGIN&lt;br /&gt;
5    SELECT systimestamp&lt;br /&gt;
6    INTO v_timestamp&lt;br /&gt;
7    FROM dual;&lt;br /&gt;
8&lt;br /&gt;
9    DBMS_OUTPUT.PUT_LINE(v_timestamp);&lt;br /&gt;
10 EXCEPTION&lt;br /&gt;
11    WHEN OTHERS&lt;br /&gt;
12    THEN&lt;br /&gt;
13       DBMS_OUTPUT.PUT_LINE(SQLERRM);&lt;br /&gt;
14 END;&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Select the source code from USER_SOURCE==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON PAGES 9999&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE compile_by_version&lt;br /&gt;
  2  IS&lt;br /&gt;
  3&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5     $IF DBMS_DB_VERSION.VER_LE_10_2&lt;br /&gt;
  6     $THEN&lt;br /&gt;
  7        DBMS_OUTPUT.PUT_LINE(&amp;quot;10.2 and under&amp;quot;);&lt;br /&gt;
  8     $ELSIF DBMS_DB_VERSION.VER_LE_10_1&lt;br /&gt;
  9     $THEN&lt;br /&gt;
 10        DBMS_OUTPUT.PUT_LINE(&amp;quot;10.1 and under&amp;quot;);&lt;br /&gt;
 11     $ELSE&lt;br /&gt;
 12        DBMS_OUTPUT.PUT_LINE(&amp;quot;Not 10g&amp;quot;);&lt;br /&gt;
 13     $END&lt;br /&gt;
 14&lt;br /&gt;
 15  END;&lt;br /&gt;
 16  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT TEXT&lt;br /&gt;
  2  FROM USER_SOURCE&lt;br /&gt;
  3  WHERE NAME = &amp;quot;COMPILE_BY_VERSION&amp;quot;;&lt;br /&gt;
TEXT&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
PROCEDURE compile_by_version&lt;br /&gt;
IS&lt;br /&gt;
BEGIN&lt;br /&gt;
   $IF DBMS_DB_VERSION.VER_LE_10_2&lt;br /&gt;
   $THEN&lt;br /&gt;
      DBMS_OUTPUT.PUT_LINE(&amp;quot;10.2 and under&amp;quot;);&lt;br /&gt;
   $ELSIF DBMS_DB_VERSION.VER_LE_10_1&lt;br /&gt;
   $THEN&lt;br /&gt;
      DBMS_OUTPUT.PUT_LINE(&amp;quot;10.1 and under&amp;quot;);&lt;br /&gt;
   $ELSE&lt;br /&gt;
      DBMS_OUTPUT.PUT_LINE(&amp;quot;Not 10g&amp;quot;);&lt;br /&gt;
   $END&lt;br /&gt;
END;&lt;br /&gt;
15 rows selected.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== When you do a search in the Oracle data dictionary, all object names are in uppercase==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace function getArea (i_rad NUMBER)&lt;br /&gt;
  2  return NUMBER&lt;br /&gt;
  3  is&lt;br /&gt;
  4  begin&lt;br /&gt;
  5    return 3.14*(i_rad**2);&lt;br /&gt;
  6  end;&lt;br /&gt;
  7  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select text&lt;br /&gt;
  2  from user_source&lt;br /&gt;
  3  where name = &amp;quot;GETAREA&amp;quot;&lt;br /&gt;
  4  order by line;&lt;br /&gt;
 /&lt;br /&gt;
TEXT&lt;br /&gt;
-------------------------------&lt;br /&gt;
function getArea (i_rad NUMBER)&lt;br /&gt;
return NUMBER&lt;br /&gt;
is&lt;br /&gt;
begin&lt;br /&gt;
  return 3.14*(i_rad**2);&lt;br /&gt;
end;&lt;br /&gt;
6 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>