<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FSystem_Packages%2Fdbms_utility</id>
		<title>Oracle PL/SQL Tutorial/System Packages/dbms utility - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FSystem_Packages%2Fdbms_utility"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Packages/dbms_utility&amp;action=history"/>
		<updated>2026-05-24T08:07:41Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Packages/dbms_utility&amp;diff=3332&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Packages/dbms_utility&amp;diff=3332&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://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Packages/dbms_utility&amp;diff=3333&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Packages/dbms_utility&amp;diff=3333&amp;oldid=prev"/>
				<updated>2010-05-26T10:06:00Z</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;== Assign value from dbms_utility.get_time to a number variable==&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 echo on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t ( x int );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set serveroutput on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2          myStart number default dbms_utility.get_time;&lt;br /&gt;
  3  begin&lt;br /&gt;
  4          for i in 1 .. 1000&lt;br /&gt;
  5          loop&lt;br /&gt;
  6                  insert into t values ( 1 );&lt;br /&gt;
  7          end loop;&lt;br /&gt;
  8          commit;&lt;br /&gt;
  9          dbms_output.put_line( dbms_utility.get_time-myStart || &amp;quot; hsecs&amp;quot; );&lt;br /&gt;
 10  end;&lt;br /&gt;
 11  /&lt;br /&gt;
19 hsecs&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table t;&lt;br /&gt;
Table dropped.&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;
== Call dbms_utility.analyze_schema analyze schema==&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 table t ( x int primary key, y date )&lt;br /&gt;
  2  organization index&lt;br /&gt;
  3  OVERFLOW TABLESPACE  TOOLS&lt;br /&gt;
  4  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; execute dbms_utility.analyze_schema(&amp;quot;SCOTT&amp;quot;,&amp;quot;COMPUTE&amp;quot;)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select table_name, num_rows, last_analyzed from user_tables where table_name = &amp;quot;T&amp;quot;;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table t;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Call dbms_utility.db_version to get the version and its compatible version==&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 echo on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      l_version        varchar2(255);&lt;br /&gt;
  3      l_compatibility varchar2(255);&lt;br /&gt;
  4  begin&lt;br /&gt;
  5      dbms_utility.db_version( l_version, l_compatibility );&lt;br /&gt;
  6      dbms_output.put_line( l_version );&lt;br /&gt;
  7      dbms_output.put_line( l_compatibility );&lt;br /&gt;
  8  end;&lt;br /&gt;
  9  /&lt;br /&gt;
10.2.0.1.0&lt;br /&gt;
10.2.0.1.0&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select dbms_utility.port_string from dual;&lt;br /&gt;
PORT_STRING&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
IBMPC/WIN_NT-8.1.0&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Call dbms_utility.get_parameter_value to get the value of utl_file_dir==&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; declare&lt;br /&gt;
  2      intval number;&lt;br /&gt;
  3      strval varchar2(512);&lt;br /&gt;
  4  begin&lt;br /&gt;
  5      if ( dbms_utility.get_parameter_value( &amp;quot;utl_file_dir&amp;quot;,intval,strval ) = 0 )&lt;br /&gt;
  6      then&lt;br /&gt;
  7          dbms_output.put_line( &amp;quot;Value = &amp;quot; || intval );&lt;br /&gt;
  8      else&lt;br /&gt;
  9          dbms_output.put_line( &amp;quot;Value = &amp;quot; || strval );&lt;br /&gt;
 10      end if;&lt;br /&gt;
 11  end;&lt;br /&gt;
 12  /&lt;br /&gt;
Value = 0&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Call dbms_utility.get_time twice==&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 echo on&lt;br /&gt;
SQL&amp;gt; set serverout on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      myStart  number;&lt;br /&gt;
  3      n         number := 0;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5&lt;br /&gt;
  6      myStart := dbms_utility.get_time;&lt;br /&gt;
  7&lt;br /&gt;
  8      for x in 1 .. 100000&lt;br /&gt;
  9      loop&lt;br /&gt;
 10          n := n+1;&lt;br /&gt;
 11      end loop;&lt;br /&gt;
 12&lt;br /&gt;
 13      dbms_output.put_line(round( (dbms_utility.get_time-myStart)/100, 2 ) ||&amp;quot; seconds...&amp;quot; );&lt;br /&gt;
 14  end;&lt;br /&gt;
 15  /&lt;br /&gt;
.01 seconds...&lt;br /&gt;
PL/SQL procedure successfully completed.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Call dbms_utility.get_time twice to time the insert statement==&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 table t ( x int );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2          myStart number default dbms_utility.get_time;&lt;br /&gt;
  3  begin&lt;br /&gt;
  4          for i in 1 .. 1000&lt;br /&gt;
  5          loop&lt;br /&gt;
  6                  insert into t values ( 1 );&lt;br /&gt;
  7                  commit;&lt;br /&gt;
  8          end loop;&lt;br /&gt;
  9          dbms_output.put_line( dbms_utility.get_time-myStart || &amp;quot; hsecs&amp;quot; );&lt;br /&gt;
 10  end;&lt;br /&gt;
 11  /&lt;br /&gt;
23 hsecs&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table t;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== DBMS_UTILITY.FORMAT_CALL_STACK and DBMS_UTILITY.FORMAT_ERROR_STACK==&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 PROCEDURE error_test1 AS&lt;br /&gt;
  2  BEGIN&lt;br /&gt;
  3     RAISE VALUE_ERROR;&lt;br /&gt;
  4  END error_test1;&lt;br /&gt;
  5  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE error_test2 AS&lt;br /&gt;
  2  BEGIN&lt;br /&gt;
  3     error_test1;&lt;br /&gt;
  4  EXCEPTION&lt;br /&gt;
  5     WHEN OTHERS THEN&lt;br /&gt;
  6        DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_CALL_STACK);&lt;br /&gt;
  7        DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_STACK);&lt;br /&gt;
  8  END error_test2;&lt;br /&gt;
  9  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== dbms_utility.format_error_stack==&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; DECLARE&lt;br /&gt;
  2    myException EXCEPTION;&lt;br /&gt;
  3    FUNCTION innerFunction&lt;br /&gt;
  4    RETURN BOOLEAN IS&lt;br /&gt;
  5      retval BOOLEAN := FALSE;&lt;br /&gt;
  6    BEGIN&lt;br /&gt;
  7      RAISE myException;&lt;br /&gt;
  8      RETURN retval;&lt;br /&gt;
  9    END;&lt;br /&gt;
 10  BEGIN&lt;br /&gt;
 11    IF innerFunction THEN&lt;br /&gt;
 12      dbms_output.put_line(&amp;quot;No raised exception&amp;quot;);&lt;br /&gt;
 13    END IF;&lt;br /&gt;
 14  EXCEPTION&lt;br /&gt;
 15    WHEN others THEN&lt;br /&gt;
 16      dbms_output.put_line(&amp;quot;DBMS_UTILITY.FORMAT_ERROR_STACK&amp;quot;);&lt;br /&gt;
 17      dbms_output.put_line(dbms_utility.format_error_stack);&lt;br /&gt;
 18&lt;br /&gt;
 19  END;&lt;br /&gt;
 20  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== dbms_utility.get_hash_value==&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; begin&lt;br /&gt;
  2      dbms_output.put_line ( dbms_utility.get_hash_value( to_char(1), 0, 1024 ) );&lt;br /&gt;
  3  end;&lt;br /&gt;
  4  /&lt;br /&gt;
827&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Timing log==&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 TABLE employee&lt;br /&gt;
  2  (employee_id         NUMBER(7),&lt;br /&gt;
  3   last_name           VARCHAR2(25),&lt;br /&gt;
  4   first_name          VARCHAR2(25),&lt;br /&gt;
  5   userid              VARCHAR2(8),&lt;br /&gt;
  6   start_date          DATE,&lt;br /&gt;
  7   comments            VARCHAR2(255),&lt;br /&gt;
  8   manager_id          NUMBER(7),&lt;br /&gt;
  9   title               VARCHAR2(25),&lt;br /&gt;
 10   department_id       NUMBER(7),&lt;br /&gt;
 11   salary              NUMBER(11, 2),&lt;br /&gt;
 12   commission_pct      NUMBER(4, 2)&lt;br /&gt;
 13  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (1, &amp;quot;V&amp;quot;, &amp;quot;Ben&amp;quot;, &amp;quot;cv&amp;quot;,to_date(&amp;quot;03-MAR-90 8:30&amp;quot;, &amp;quot;dd-mon-yy hh24:mi&amp;quot;),NULL, NULL, &amp;quot;PRESIDENT&amp;quot;, 50, 2500, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (2, &amp;quot;N&amp;quot;, &amp;quot;Haidy&amp;quot;, &amp;quot;ln&amp;quot;, &amp;quot;08-MAR-90&amp;quot;, NULL,1, &amp;quot;VP, OPERATIONS&amp;quot;, 41, 1450, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (3, &amp;quot;N&amp;quot;, &amp;quot;Molly&amp;quot;, &amp;quot;mn&amp;quot;, &amp;quot;17-JUN-91&amp;quot;,NULL, 1, &amp;quot;VP, SALES&amp;quot;, 31, 1400, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (4, &amp;quot;S&amp;quot;, &amp;quot;Mark&amp;quot;, &amp;quot;mq&amp;quot;, &amp;quot;07-APR-90&amp;quot;,NULL, 1, &amp;quot;VP, FINANCE&amp;quot;, 10, 1450, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (5, &amp;quot;R&amp;quot;, &amp;quot;AUDRY&amp;quot;, &amp;quot;ar&amp;quot;, &amp;quot;04-MAR-90&amp;quot;,NULL, 1, &amp;quot;VP, ADMINISTRATION&amp;quot;, 50, 1550, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (6, &amp;quot;U&amp;quot;, &amp;quot;MOLLY&amp;quot;, &amp;quot;mu&amp;quot;, &amp;quot;18-JAN-91&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1200, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (7, &amp;quot;M&amp;quot;, &amp;quot;ROBERTA&amp;quot;, &amp;quot;rm&amp;quot;, &amp;quot;14-MAY-90&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1250, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (8, &amp;quot;B&amp;quot;, &amp;quot;BEN&amp;quot;, &amp;quot;ry&amp;quot;, &amp;quot;07-APR-90&amp;quot;, NULL, 2,&amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1100, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (9, &amp;quot;C&amp;quot;, &amp;quot;Jane&amp;quot;, &amp;quot;ac&amp;quot;, &amp;quot;09-FEB-92&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1300, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (10, &amp;quot;H&amp;quot;, &amp;quot;Mart&amp;quot;, &amp;quot;mh&amp;quot;, &amp;quot;27-FEB-91&amp;quot;, NULL, 2,&amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1307, NULL);&lt;br /&gt;
1 row 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; CREATE TABLE process_timing_log&lt;br /&gt;
  2     (program_name      VARCHAR2(30),&lt;br /&gt;
  3      execution_date    DATE,&lt;br /&gt;
  4      records_processed NUMBER,&lt;br /&gt;
  5      elapsed_time_sec  NUMBER);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE update_salary AS&lt;br /&gt;
  2     CURSOR empCursor IS&lt;br /&gt;
  3        SELECT employee_id, salary, ROWID&lt;br /&gt;
  4        FROM   employee;&lt;br /&gt;
  5     lv_new_salary_num NUMBER;&lt;br /&gt;
  6     lv_count_num      PLS_INTEGER := 0;&lt;br /&gt;
  7     lv_start_time_num PLS_INTEGER;&lt;br /&gt;
  8     lv_total_time_num NUMBER;&lt;br /&gt;
  9  BEGIN&lt;br /&gt;
 10     lv_start_time_num := DBMS_UTILITY.GET_TIME;&lt;br /&gt;
 11     FOR empCursor_rec IN empCursor LOOP&lt;br /&gt;
 12        lv_count_num := lv_count_num + 1;&lt;br /&gt;
 13        lv_new_salary_num := empCursor_rec.salary;&lt;br /&gt;
 14        UPDATE employee&lt;br /&gt;
 15        SET    salary      = lv_new_salary_num&lt;br /&gt;
 16        WHERE  rowid = empCursor_rec.ROWID;&lt;br /&gt;
 17     END LOOP;&lt;br /&gt;
 18     lv_total_time_num := (DBMS_UTILITY.GET_TIME - lv_start_time_num)/100;&lt;br /&gt;
 19     INSERT INTO process_timing_log(program_name, execution_date, records_processed,elapsed_time_sec)&lt;br /&gt;
 20     VALUES(&amp;quot;UPDATE_SALARY&amp;quot;, SYSDATE, lv_count_num, lv_total_time_num);&lt;br /&gt;
 21     COMMIT;&lt;br /&gt;
 22  END update_salary;&lt;br /&gt;
 23  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT program_name,&lt;br /&gt;
  2         TO_CHAR(execution_date,&amp;quot;MM/DD/YYYY HH24:MI:SS&amp;quot;) execution_time,&lt;br /&gt;
  3         records_processed, elapsed_time_sec&lt;br /&gt;
  4  FROM   process_timing_log&lt;br /&gt;
  5  ORDER BY 1,2;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table process_timing_log;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use dbms_utility.comma_to_table, dbms_utility.table_to_comma to parse comma delimited value==&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 echo on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      type vcArray is table of varchar2(4000);&lt;br /&gt;
  3&lt;br /&gt;
  4      l_names  vcArray := vcArray( &amp;quot;emp,dept,bonus&amp;quot;,&lt;br /&gt;
  5                                   &amp;quot;a,  b  ,   c&amp;quot;,&lt;br /&gt;
  6                                   &amp;quot;&amp;quot;1&amp;quot;, &amp;quot;6&amp;quot;, &amp;quot;9&amp;quot;&amp;quot;,&lt;br /&gt;
  7                                   &amp;quot;&amp;quot;This is a long string&amp;quot;,&amp;quot;b&amp;quot;,c&amp;quot;);&lt;br /&gt;
  8      l_tablen number;&lt;br /&gt;
  9      l_tab    dbms_utility.uncl_array;&lt;br /&gt;
 10  begin&lt;br /&gt;
 11      for i in 1 .. l_names.count&lt;br /&gt;
 12      loop&lt;br /&gt;
 13          dbms_output.put_line( &amp;quot; &amp;quot; || &amp;quot;[&amp;quot; || l_names(i) || &amp;quot;]&amp;quot; );&lt;br /&gt;
 14      begin&lt;br /&gt;
 15          dbms_utility.ruma_to_table( l_names(i),l_tablen, l_tab );&lt;br /&gt;
 16&lt;br /&gt;
 17          for j in 1..l_tablen&lt;br /&gt;
 18          loop&lt;br /&gt;
 19              dbms_output.put_line( &amp;quot;[&amp;quot; || l_tab(j) || &amp;quot;]&amp;quot; );&lt;br /&gt;
 20          end loop;&lt;br /&gt;
 21          l_names(i) := null;&lt;br /&gt;
 22          dbms_utility.table_to_comma( l_tab,l_tablen, l_names(i) );&lt;br /&gt;
 23          dbms_output.put_line( l_names(i) );&lt;br /&gt;
 24      exception&lt;br /&gt;
 25          when others then dbms_output.put_line( sqlerrm );&lt;br /&gt;
 26      end;&lt;br /&gt;
 27      end loop;&lt;br /&gt;
 28  end;&lt;br /&gt;
 29  /&lt;br /&gt;
 [emp,dept,bonus]&lt;br /&gt;
[emp]&lt;br /&gt;
[dept]&lt;br /&gt;
[bonus]&lt;br /&gt;
emp,dept,bonus&lt;br /&gt;
 [a,  b  ,   c]&lt;br /&gt;
[a]&lt;br /&gt;
[  b  ]&lt;br /&gt;
[   c]&lt;br /&gt;
a,  b  ,   c&lt;br /&gt;
 [&amp;quot;1&amp;quot;, &amp;quot;6&amp;quot;, &amp;quot;9&amp;quot;]&lt;br /&gt;
[&amp;quot;1&amp;quot;]&lt;br /&gt;
[ &amp;quot;6&amp;quot;]&lt;br /&gt;
[ &amp;quot;9&amp;quot;]&lt;br /&gt;
&amp;quot;1&amp;quot;, &amp;quot;6&amp;quot;, &amp;quot;9&amp;quot;&lt;br /&gt;
 [&amp;quot;This is a long string&amp;quot;,&amp;quot;b&amp;quot;,c]&lt;br /&gt;
[&amp;quot;This is a long string&amp;quot;]&lt;br /&gt;
[&amp;quot;b&amp;quot;]&lt;br /&gt;
[c]&lt;br /&gt;
&amp;quot;This is a long string&amp;quot;,&amp;quot;b&amp;quot;,c&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use dbms_utility.name_resolve to find a package==&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 echo on&lt;br /&gt;
SQL&amp;gt; set serverout on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      type vcArray is table of varchar2(30);&lt;br /&gt;
  3      l_types vcArray := vcArray( null, null, null, null, &amp;quot;synonym&amp;quot;,null, &amp;quot;procedure&amp;quot;, &amp;quot;function&amp;quot;,&amp;quot;package&amp;quot; );&lt;br /&gt;
  4      l_schema   varchar2(30);&lt;br /&gt;
  5      l_part1    varchar2(30);&lt;br /&gt;
  6      l_part2    varchar2(30);&lt;br /&gt;
  7      l_dblink   varchar2(30);&lt;br /&gt;
  8      l_type     number;&lt;br /&gt;
  9      l_obj#     number;&lt;br /&gt;
 10  begin&lt;br /&gt;
 11    dbms_utility.name_resolve( name =&amp;gt; &amp;quot;DBMS_UTILITY&amp;quot;,&lt;br /&gt;
 12                               context       =&amp;gt; 1,&lt;br /&gt;
 13                               schema        =&amp;gt; l_schema,&lt;br /&gt;
 14                               part1         =&amp;gt; l_part1,&lt;br /&gt;
 15                               part2         =&amp;gt; l_part2,&lt;br /&gt;
 16                               dblink        =&amp;gt; l_dblink,&lt;br /&gt;
 17                               part1_type    =&amp;gt; l_type,&lt;br /&gt;
 18                               object_number =&amp;gt; l_obj# );&lt;br /&gt;
 19    if l_obj# IS NULL&lt;br /&gt;
 20    then&lt;br /&gt;
 21      dbms_output.put_line(&amp;quot;Object not found or not valid.&amp;quot;);&lt;br /&gt;
 22    else&lt;br /&gt;
 23      dbms_output.put( l_schema || &amp;quot;.&amp;quot; || nvl(l_part1,l_part2) );&lt;br /&gt;
 24      if l_part2 is not null and l_part1 is not null&lt;br /&gt;
 25      then&lt;br /&gt;
 26          dbms_output.put( &amp;quot;.&amp;quot; || l_part2 );&lt;br /&gt;
 27      end if;&lt;br /&gt;
 28      dbms_output.put_line( &amp;quot; is a &amp;quot; || l_types( l_type ) ||&lt;br /&gt;
 29                            &amp;quot; with object id &amp;quot; || l_obj# ||&lt;br /&gt;
 30                            &amp;quot; and dblink &amp;quot;&amp;quot; || l_dblink || &amp;quot;&amp;quot;&amp;quot; );&lt;br /&gt;
 31    end if;&lt;br /&gt;
 32  end;&lt;br /&gt;
 33  /&lt;br /&gt;
SYS.DBMS_UTILITY is a package with object id 4224 and dblink &amp;quot;&amp;quot;&lt;br /&gt;
PL/SQL procedure successfully completed.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use dbms_utility.name_tokenize to split a name==&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; set echo on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      l_a      varchar2(30);&lt;br /&gt;
  3      l_b      varchar2(30);&lt;br /&gt;
  4      l_c      varchar2(30);&lt;br /&gt;
  5      l_dblink varchar2(30);&lt;br /&gt;
  6      l_next   number;&lt;br /&gt;
  7&lt;br /&gt;
  8      type vcArray is table of varchar2(255);&lt;br /&gt;
  9      l_names vcArray := vcArray( &amp;quot;owner.pkg.proc@database_link&amp;quot;,&lt;br /&gt;
 10                   &amp;quot;owner.tbl@database_link&amp;quot;,&lt;br /&gt;
 11                   &amp;quot;tbl&amp;quot;,&lt;br /&gt;
 12                   &amp;quot;&amp;quot;Owner&amp;quot;.tbl&amp;quot;,&lt;br /&gt;
 13                   &amp;quot;pkg.proc&amp;quot;,&lt;br /&gt;
 14                   &amp;quot;owner.pkg.proc&amp;quot;,&lt;br /&gt;
 15                   &amp;quot;proc&amp;quot;,&lt;br /&gt;
 16                   &amp;quot;owner.pkg.proc@dblink with junk&amp;quot;,&lt;br /&gt;
 17                   &amp;quot;123&amp;quot; );&lt;br /&gt;
 18  begin&lt;br /&gt;
 19      for i in 1 .. l_names.count&lt;br /&gt;
 20      loop&lt;br /&gt;
 21      begin&lt;br /&gt;
 22          dbms_utility.name_tokenize(name   =&amp;gt; l_names(i),&lt;br /&gt;
 23                                     a      =&amp;gt; l_a,&lt;br /&gt;
 24                                     b      =&amp;gt; l_b,&lt;br /&gt;
 25                                     c      =&amp;gt; l_c,&lt;br /&gt;
 26                                     dblink =&amp;gt; l_dblink,&lt;br /&gt;
 27                                     nextpos=&amp;gt; l_next );&lt;br /&gt;
 28&lt;br /&gt;
 29          dbms_output.put_line( &amp;quot;name    &amp;quot; || l_names(i) );&lt;br /&gt;
 30          dbms_output.put_line( &amp;quot;A       &amp;quot; || l_a );&lt;br /&gt;
 31          dbms_output.put_line( &amp;quot;B       &amp;quot; || l_b );&lt;br /&gt;
 32          dbms_output.put_line( &amp;quot;C       &amp;quot; || l_c );&lt;br /&gt;
 33          dbms_output.put_line( &amp;quot;dblink  &amp;quot; || l_dblink );&lt;br /&gt;
 34          dbms_output.put_line( &amp;quot;next    &amp;quot; || l_next || &amp;quot; &amp;quot; || length(l_names(i)));&lt;br /&gt;
 35      exception&lt;br /&gt;
 36          when others then&lt;br /&gt;
 37              dbms_output.put_line( &amp;quot;name    &amp;quot; || l_names(i) );&lt;br /&gt;
 38              dbms_output.put_line( sqlerrm );&lt;br /&gt;
 39      end;&lt;br /&gt;
 40      end loop;&lt;br /&gt;
 41  end;&lt;br /&gt;
 42  /&lt;br /&gt;
name    owner.pkg.proc@database_link&lt;br /&gt;
A       OWNER&lt;br /&gt;
B       PKG&lt;br /&gt;
C       PROC&lt;br /&gt;
dblink  DATABASE_LINK&lt;br /&gt;
next    28 28&lt;br /&gt;
name    owner.tbl@database_link&lt;br /&gt;
A       OWNER&lt;br /&gt;
B       TBL&lt;br /&gt;
C&lt;br /&gt;
dblink  DATABASE_LINK&lt;br /&gt;
next    23 23&lt;br /&gt;
name    tbl&lt;br /&gt;
A       TBL&lt;br /&gt;
B&lt;br /&gt;
C&lt;br /&gt;
dblink&lt;br /&gt;
next    3 3&lt;br /&gt;
name    &amp;quot;Owner&amp;quot;.tbl&lt;br /&gt;
A       Owner&lt;br /&gt;
B       TBL&lt;br /&gt;
C&lt;br /&gt;
dblink&lt;br /&gt;
next    11 11&lt;br /&gt;
name    pkg.proc&lt;br /&gt;
A       PKG&lt;br /&gt;
B       PROC&lt;br /&gt;
C&lt;br /&gt;
dblink&lt;br /&gt;
next    8 8&lt;br /&gt;
name    owner.pkg.proc&lt;br /&gt;
A       OWNER&lt;br /&gt;
B       PKG&lt;br /&gt;
C       PROC&lt;br /&gt;
dblink&lt;br /&gt;
next    14 14&lt;br /&gt;
name    proc&lt;br /&gt;
A       PROC&lt;br /&gt;
B&lt;br /&gt;
C&lt;br /&gt;
dblink&lt;br /&gt;
next    4 4&lt;br /&gt;
name    owner.pkg.proc@dblink with junk&lt;br /&gt;
A       OWNER&lt;br /&gt;
B       PKG&lt;br /&gt;
C       PROC&lt;br /&gt;
dblink  DBLINK&lt;br /&gt;
next    22 31&lt;br /&gt;
name    123&lt;br /&gt;
ORA-00931: missing identifier&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>