<?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%2FCursor%2FCursor_ISOPEN</id>
		<title>Oracle PL/SQL/Cursor/Cursor ISOPEN - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FCursor%2FCursor_ISOPEN"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Cursor/Cursor_ISOPEN&amp;action=history"/>
		<updated>2026-04-04T15:12:32Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Cursor/Cursor_ISOPEN&amp;diff=1004&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/Cursor/Cursor_ISOPEN&amp;diff=1004&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</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/Cursor/Cursor_ISOPEN&amp;diff=1005&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Cursor/Cursor_ISOPEN&amp;diff=1005&amp;oldid=prev"/>
				<updated>2010-05-26T09:54:41Z</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;==Cursor isopen property==&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;
 &lt;br /&gt;
&lt;br /&gt;
SQL&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 Employee(&lt;br /&gt;
  2    ID                 VARCHAR2(4 BYTE)         NOT NULL,&lt;br /&gt;
  3    First_Name         VARCHAR2(10 BYTE),&lt;br /&gt;
  4    Last_Name          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 Employee(ID,  First_Name, Last_Name, 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 Employee(ID,  First_Name, Last_Name, 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 Employee(ID,  First_Name, Last_Name, 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 Employee(ID,  First_Name, Last_Name, 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 Employee(ID,  First_Name, Last_Name, 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 Employee(ID,  First_Name, Last_Name, 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 Employee(ID,  First_Name, Last_Name, 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 Employee(ID,  First_Name, Last_Name, 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 Employee&lt;br /&gt;
  2  /&lt;br /&gt;
ID   FIRST_NAME LAST_NAME  START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- ---------- ---------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
01   Jason      Martin     25-JUL-96 25-JUL-06    1234.56 Toronto    Programmer&lt;br /&gt;
02   Alison     Mathews    21-MAR-76 21-FEB-86    6661.78 Vancouver  Tester&lt;br /&gt;
03   James      Smith      12-DEC-78 15-MAR-90    6544.78 Vancouver  Tester&lt;br /&gt;
04   Celia      Rice       24-OCT-82 21-APR-99    2344.78 Vancouver  Manager&lt;br /&gt;
05   Robert     Black      15-JAN-84 08-AUG-98    2334.78 Vancouver  Tester&lt;br /&gt;
06   Linda      Green      30-JUL-87 04-JAN-96    4322.78 New York   Tester&lt;br /&gt;
07   David      Larry      31-DEC-90 12-FEB-98    7897.78 New York   Manager&lt;br /&gt;
08   James      Cat        17-SEP-96 15-APR-02    1232.78 Vancouver  Tester&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;  declare&lt;br /&gt;
  2      cursor myCursor is select * from employee where rownum &amp;lt; 6 order by 1;&lt;br /&gt;
  3&lt;br /&gt;
  4      myEmployee employee%rowtype;&lt;br /&gt;
  5      row number := 1;&lt;br /&gt;
  6    begin&lt;br /&gt;
  7      open myCursor;&lt;br /&gt;
  8      fetch myCursor into myEmployee;&lt;br /&gt;
  9&lt;br /&gt;
 10      loop&lt;br /&gt;
 11        if myCursor%FOUND then&lt;br /&gt;
 12          dbms_output.put_line(&amp;quot;Looping over record &amp;quot; ||row|| &amp;quot; of &amp;quot; || myCursor%ROWCOUNT);&lt;br /&gt;
 13          fetch myCursor into myEmployee;&lt;br /&gt;
 14          row := row + 1;&lt;br /&gt;
 15        elsif myCursor%NOTFOUND then&lt;br /&gt;
 16          exit;&lt;br /&gt;
 17        end if;&lt;br /&gt;
 18      end loop;&lt;br /&gt;
 19&lt;br /&gt;
 20      if myCursor%ISOPEN then&lt;br /&gt;
 21        close myCursor;&lt;br /&gt;
 22      end if;&lt;br /&gt;
 23    end;&lt;br /&gt;
 24    /&lt;br /&gt;
Looping over record 1 of 1&lt;br /&gt;
Looping over record 2 of 2&lt;br /&gt;
Looping over record 3 of 3&lt;br /&gt;
Looping over record 4 of 4&lt;br /&gt;
Looping over record 5 of 5&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicit Attribute==&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;
    &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; 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; 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     fnameValue emp.fname%TYPE;&lt;br /&gt;
  4     lnameValue emp.lname%TYPE;&lt;br /&gt;
  5     v_row_count PLS_INTEGER := 0;&lt;br /&gt;
  6     v_book_count PLS_INTEGER := 0;&lt;br /&gt;
  7&lt;br /&gt;
  8     CURSOR auth_cur IS&lt;br /&gt;
  9        SELECT a.fname, a.lname, count(b.title)&lt;br /&gt;
 10        FROM emp a, book b&lt;br /&gt;
 11        GROUP BY a.fname, a.lname&lt;br /&gt;
 12        HAVING count(b.title) &amp;gt; 0&lt;br /&gt;
 13        ORDER BY a.lname;&lt;br /&gt;
 14&lt;br /&gt;
 15  BEGIN&lt;br /&gt;
 16     DBMS_OUTPUT.ENABLE(1000000);&lt;br /&gt;
 17     OPEN auth_cur;&lt;br /&gt;
 18     LOOP&lt;br /&gt;
 19        FETCH auth_cur INTO fnameValue, lnameValue, v_book_count;&lt;br /&gt;
 20        EXIT WHEN auth_cur%NOTFOUND;&lt;br /&gt;
 21&lt;br /&gt;
 22        &lt;br /&gt;
 23        v_row_count := auth_cur%ROWCOUNT;&lt;br /&gt;
 24        DBMS_OUTPUT.PUT_LINE(v_row_count||&amp;quot; rows processed so far&amp;quot;);&lt;br /&gt;
 25&lt;br /&gt;
 26        DBMS_OUTPUT.PUT_LINE(lnameValue||&amp;quot;,&amp;quot;||fnameValue||&amp;quot; wrote &amp;quot;||v_book_count||&amp;quot; book(s).&amp;quot;);&lt;br /&gt;
 27     END LOOP;&lt;br /&gt;
 28     CLOSE auth_cur;&lt;br /&gt;
 29     IF auth_cur%ISOPEN = FALSE&lt;br /&gt;
 30     THEN&lt;br /&gt;
 31        DBMS_OUTPUT.PUT_LINE(&amp;quot;Cursor closed&amp;quot;);&lt;br /&gt;
 32     ELSE&lt;br /&gt;
 33        DBMS_OUTPUT.PUT_LINE(&amp;quot;The cursor is still open&amp;quot;);&lt;br /&gt;
 34     END IF;&lt;br /&gt;
 35&lt;br /&gt;
 36  EXCEPTION&lt;br /&gt;
 37     WHEN OTHERS&lt;br /&gt;
 38        THEN&lt;br /&gt;
 39        DBMS_OUTPUT.PUT_LINE(SQLERRM);&lt;br /&gt;
 40  END;&lt;br /&gt;
 41  /&lt;br /&gt;
1 rows processed so far&lt;br /&gt;
B,A wrote 3 book(s).&lt;br /&gt;
2 rows processed so far&lt;br /&gt;
D,C wrote 3 book(s).&lt;br /&gt;
3 rows processed so far&lt;br /&gt;
F,Enn wrote 3 book(s).&lt;br /&gt;
4 rows processed so far&lt;br /&gt;
H,G wrote 3 book(s).&lt;br /&gt;
5 rows processed so far&lt;br /&gt;
Z,G wrote 3 book(s).&lt;br /&gt;
Cursor closed&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table book;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>