<?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%2FCursor%2Fref_cursor</id>
		<title>Oracle PL/SQL Tutorial/Cursor/ref cursor - История изменений</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%2FCursor%2Fref_cursor"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Cursor/ref_cursor&amp;action=history"/>
		<updated>2026-04-30T16:59:10Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Cursor/ref_cursor&amp;diff=3132&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/Cursor/ref_cursor&amp;diff=3132&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/Cursor/ref_cursor&amp;diff=3133&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/Cursor/ref_cursor&amp;diff=3133&amp;oldid=prev"/>
				<updated>2010-05-26T10:05:14Z</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;== Create and use reference cursor==&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 big_table as select * from all_objects;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      c sys_refcursor;&lt;br /&gt;
  3      type array is table of big_table%rowtype index by binary_integer;&lt;br /&gt;
  4      l_rec array;&lt;br /&gt;
  5  begin&lt;br /&gt;
  6      for i in 1 .. 5&lt;br /&gt;
  7      loop&lt;br /&gt;
  8          open c for select * from big_table ORDER BY OWNER;&lt;br /&gt;
  9          fetch c bulk collect into l_rec limit i*1000;&lt;br /&gt;
 10          close c;&lt;br /&gt;
 11      end loop;&lt;br /&gt;
 12  end;&lt;br /&gt;
 13  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table big_table;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Creating a REF CURSOR datatype==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The REF CURSOR datatype cannot be used outside a PL/SQL environment.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There are two kinds of REF CURSOR types: weak and strong.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A weak REF CURSOR can point to any data set, as shown here:&amp;lt;/p&amp;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;
declare&lt;br /&gt;
  type weak_rcty is ref cursor;&lt;br /&gt;
  c_weak rcty weak_rcty;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== REF CURSOR custom type==&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; CREATE TABLE book (&lt;br /&gt;
  2    isbn      CHAR(10) PRIMARY KEY,&lt;br /&gt;
  3    category  VARCHAR2(20),&lt;br /&gt;
  4    title     VARCHAR2(100),&lt;br /&gt;
  5    num_pages NUMBER,&lt;br /&gt;
  6    price     NUMBER,&lt;br /&gt;
  7    copyright NUMBER(4),&lt;br /&gt;
  8    emp1   NUMBER,&lt;br /&gt;
  9    emp2   NUMBER,&lt;br /&gt;
 10    emp3   NUMBER&lt;br /&gt;
 11  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)&lt;br /&gt;
  2             VALUES (&amp;quot;1&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;Oracle&amp;quot;, 563, 39.99, 2009, 1, 2, 3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2)&lt;br /&gt;
  2             VALUES (&amp;quot;2&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;MySQL&amp;quot;, 765, 44.99, 2009, 4, 5);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)&lt;br /&gt;
  2             VALUES (&amp;quot;3&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;SQL Server&amp;quot;, 404, 39.99, 2001, 6, 7, 8);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON ESCAPE OFF&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2&lt;br /&gt;
  3     TYPE book_typ IS REF CURSOR RETURN book%ROWTYPE;&lt;br /&gt;
  4     cv_book book_typ;&lt;br /&gt;
  5     v_book book%ROWTYPE;&lt;br /&gt;
  6&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8&lt;br /&gt;
  9     DBMS_OUTPUT.ENABLE(1000000);&lt;br /&gt;
 10&lt;br /&gt;
 11     OPEN cv_book FOR SELECT * FROM book WHERE isbn = &amp;quot;1&amp;quot;;&lt;br /&gt;
 12&lt;br /&gt;
 13     FETCH cv_book INTO v_book;&lt;br /&gt;
 14&lt;br /&gt;
 15     DBMS_OUTPUT.PUT_LINE(v_book.title||&amp;quot; is &amp;quot;||v_book.price);&lt;br /&gt;
 16&lt;br /&gt;
 17     CLOSE cv_book;&lt;br /&gt;
 18  END;&lt;br /&gt;
 19  /&lt;br /&gt;
Oracle is 39.99&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table book;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Reference cursor==&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 emp (&lt;br /&gt;
  2    id         NUMBER PRIMARY KEY,&lt;br /&gt;
  3    fname VARCHAR2(50),&lt;br /&gt;
  4    lname  VARCHAR2(50)&lt;br /&gt;
  5  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (1, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (2, &amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (3, &amp;quot;Enn&amp;quot;, &amp;quot;F&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (4, &amp;quot;G&amp;quot;, &amp;quot;H&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (5, &amp;quot;G&amp;quot;, &amp;quot;Z&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON ESCAPE OFF&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE emp_sel (cv_results IN OUT SYS_REFCURSOR)&lt;br /&gt;
  2  IS&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     OPEN cv_results FOR SELECT id, fname, lname FROM emp;&lt;br /&gt;
  5  END;&lt;br /&gt;
  6  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; VARIABLE x REFCURSOR&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; EXEC emp_sel(:x)&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; print x&lt;br /&gt;
        ID FNAME&lt;br /&gt;
---------- --------------------------------------------------&lt;br /&gt;
LNAME&lt;br /&gt;
--------------------------------------------------&lt;br /&gt;
         1 A&lt;br /&gt;
B&lt;br /&gt;
         2 C&lt;br /&gt;
D&lt;br /&gt;
         3 Enn&lt;br /&gt;
F&lt;br /&gt;
         4 G&lt;br /&gt;
H&lt;br /&gt;
         5 G&lt;br /&gt;
Z&lt;br /&gt;
&lt;br /&gt;
5 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Reference value in a cursor by cursor 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; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table emp(&lt;br /&gt;
  2    ID                 VARCHAR2(4 BYTE)         NOT NULL,&lt;br /&gt;
  3    fname         VARCHAR2(10 BYTE),&lt;br /&gt;
  4    lname          VARCHAR2(10 BYTE),&lt;br /&gt;
  5    Start_Date         DATE,&lt;br /&gt;
  6    End_Date           DATE,&lt;br /&gt;
  7    Salary             Number(8,2),&lt;br /&gt;
  8    City               VARCHAR2(10 BYTE),&lt;br /&gt;
  9    Description        VARCHAR2(15 BYTE)&lt;br /&gt;
 10  )&lt;br /&gt;
 11  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data&lt;br /&gt;
SQL&amp;gt; insert into emp(ID,  fname, lname, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2               values (&amp;quot;01&amp;quot;,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  to_date(&amp;quot;19960725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;20060725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp(ID,  fname, lname, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;02&amp;quot;,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;, to_date(&amp;quot;19760321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19860221&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp(ID,  fname, lname, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;03&amp;quot;,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,   to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19900315&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp(ID,  fname, lname, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;04&amp;quot;,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,    to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19990421&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp(ID,  fname, lname, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;05&amp;quot;,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,   to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19980808&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp(ID,  fname, lname, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;06&amp;quot;,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,   to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19960104&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp(ID,  fname, lname, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;07&amp;quot;,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,   to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19980212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp(ID,  fname, lname, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;08&amp;quot;,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;20020415&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&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; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from emp&lt;br /&gt;
  2  /&lt;br /&gt;
ID   FNAME      LNAME      START_DAT END_DATE      SALARY CITY&lt;br /&gt;
---- ---------- ---------- --------- --------- ---------- ----------&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
---------------&lt;br /&gt;
01   Jason      Martin     25-JUL-96 25-JUL-06    1234.56 Toronto&lt;br /&gt;
Programmer&lt;br /&gt;
02   Alison     Mathews    21-MAR-76 21-FEB-86    6661.78 Vancouver&lt;br /&gt;
Tester&lt;br /&gt;
03   James      Smith      12-DEC-78 15-MAR-90    6544.78 Vancouver&lt;br /&gt;
Tester&lt;br /&gt;
&lt;br /&gt;
ID   FNAME      LNAME      START_DAT END_DATE      SALARY CITY&lt;br /&gt;
---- ---------- ---------- --------- --------- ---------- ----------&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
---------------&lt;br /&gt;
04   Celia      Rice       24-OCT-82 21-APR-99    2344.78 Vancouver&lt;br /&gt;
Manager&lt;br /&gt;
05   Robert     Black      15-JAN-84 08-AUG-98    2334.78 Vancouver&lt;br /&gt;
Tester&lt;br /&gt;
06   Linda      Green      30-JUL-87 04-JAN-96    4322.78 New York&lt;br /&gt;
Tester&lt;br /&gt;
&lt;br /&gt;
ID   FNAME      LNAME      START_DAT END_DATE      SALARY CITY&lt;br /&gt;
---- ---------- ---------- --------- --------- ---------- ----------&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
---------------&lt;br /&gt;
07   David      Larry      31-DEC-90 12-FEB-98    7897.78 New York&lt;br /&gt;
Manager&lt;br /&gt;
08   James      Cat        17-SEP-96 15-APR-02    1232.78 Vancouver&lt;br /&gt;
Tester&lt;br /&gt;
&lt;br /&gt;
8 rows selected.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE myProcedure&lt;br /&gt;
  2  AS&lt;br /&gt;
  3      CURSOR myCursor IS SELECT id, fname FROM emp;&lt;br /&gt;
  4      TYPE firstNameType IS TABLE OF emp.fname%type INDEX BY emp.id%type;&lt;br /&gt;
  5      ch firstNameType;&lt;br /&gt;
  6      i integer := 0;&lt;br /&gt;
  7      imax integer;&lt;br /&gt;
  8  BEGIN&lt;br /&gt;
  9    FOR j IN myCursor LOOP&lt;br /&gt;
 10      i := i + 1;&lt;br /&gt;
 11      ch(i) := j.fname;&lt;br /&gt;
 12    END LOOP;&lt;br /&gt;
 13    dbms_output.put_line(ch(&amp;quot;James&amp;quot;));&lt;br /&gt;
 14  END myProcedure;&lt;br /&gt;
 15  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; exec myProcedure;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table emp&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&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;
== Timing a ref cursor==&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      type rc is ref cursor;&lt;br /&gt;
  3      l_rc rc;&lt;br /&gt;
  4      l_dummy all_objects.object_name%type;&lt;br /&gt;
  5      l_start number default dbms_utility.get_time;&lt;br /&gt;
  6  begin&lt;br /&gt;
  7      for i in 1 .. 1000&lt;br /&gt;
  8      loop&lt;br /&gt;
  9          open l_rc for&lt;br /&gt;
 10          &amp;quot;select object_name&lt;br /&gt;
 11             from all_objects&lt;br /&gt;
 12            where object_id = :x&amp;quot;&lt;br /&gt;
 13          using i;&lt;br /&gt;
 14          fetch l_rc into l_dummy;&lt;br /&gt;
 15          close l_rc;&lt;br /&gt;
 16      end loop;&lt;br /&gt;
 17      dbms_output.put_line&lt;br /&gt;
 18      ( round( (dbms_utility.get_time-l_start)/100, 2 ) ||&lt;br /&gt;
 19        &amp;quot; seconds...&amp;quot; );&lt;br /&gt;
 20  end;&lt;br /&gt;
 21  /&lt;br /&gt;
.63 seconds...&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
Elapsed: 00:00:00.70&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set timing off&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>