<?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_ROWCOUNT</id>
		<title>Oracle PL/SQL/Cursor/Cursor ROWCOUNT - История изменений</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_ROWCOUNT"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Cursor/Cursor_ROWCOUNT&amp;action=history"/>
		<updated>2026-04-04T10:06:38Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Cursor/Cursor_ROWCOUNT&amp;diff=1012&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_ROWCOUNT&amp;diff=1012&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_ROWCOUNT&amp;diff=1013&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_ROWCOUNT&amp;diff=1013&amp;oldid=prev"/>
				<updated>2010-05-26T09:54:44Z</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;==Check SQL%ROWCOUNT after update 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;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE place (&lt;br /&gt;
  2    room_id          NUMBER(5) PRIMARY KEY,&lt;br /&gt;
  3    building         VARCHAR2(15),&lt;br /&gt;
  4    room_number      NUMBER(4),&lt;br /&gt;
  5    number_seats     NUMBER(4),&lt;br /&gt;
  6    description      VARCHAR2(50)&lt;br /&gt;
  7    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20001, &amp;quot;Building 7&amp;quot;, 201, 1000, &amp;quot;Large Lecture Hall&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20002, &amp;quot;Building 6&amp;quot;, 101, 500, &amp;quot;Small Lecture Hall&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20003, &amp;quot;Building 6&amp;quot;, 150, 50, &amp;quot;Discussion Room A&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20004, &amp;quot;Building 6&amp;quot;, 160, 50, &amp;quot;Discussion Room B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats,description)&lt;br /&gt;
  2             VALUES (20005, &amp;quot;Building 6&amp;quot;, 170, 50, &amp;quot;Discussion Room C&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20006, &amp;quot;Music Building&amp;quot;, 100, 10, &amp;quot;Music Practice Room&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20007, &amp;quot;Music Building&amp;quot;, 200, 1000, &amp;quot;Concert Room&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20008, &amp;quot;Building 7&amp;quot;, 300, 75, &amp;quot;Discussion Room D&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats,description)&lt;br /&gt;
  2             VALUES (20009, &amp;quot;Building 7&amp;quot;, 310, 50, &amp;quot;Discussion Room E&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; BEGIN&lt;br /&gt;
  2    UPDATE place&lt;br /&gt;
  3      SET number_seats = 100&lt;br /&gt;
  4      WHERE room_id = 99980;&lt;br /&gt;
  5    IF SQL%ROWCOUNT = 0 THEN&lt;br /&gt;
  6      INSERT INTO place (room_id, number_seats)&lt;br /&gt;
  7        VALUES (99980, 100);&lt;br /&gt;
  8    END IF;&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table place;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;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;
==Cursor attributes: FOUND NOTFOUND, ROWCOUNT==&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;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employees&lt;br /&gt;
  2  ( employee_id          number(10)      not null,&lt;br /&gt;
  3    last_name            varchar2(50)      not null,&lt;br /&gt;
  4    email                varchar2(30),&lt;br /&gt;
  5    hire_date            date,&lt;br /&gt;
  6    job_id               varchar2(30),&lt;br /&gt;
  7    department_id        number(10),&lt;br /&gt;
  8    salary               number(6),&lt;br /&gt;
  9    manager_id           number(6)&lt;br /&gt;
 10  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary,department_id ,manager_id)&lt;br /&gt;
  2                values ( 1001, &amp;quot;Lawson&amp;quot;, &amp;quot;lawson@g.ru&amp;quot;, &amp;quot;01-JAN-2002&amp;quot;,&amp;quot;MGR&amp;quot;, 30000,1 ,1004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id ,manager_id)&lt;br /&gt;
  2                values ( 1002, &amp;quot;Wells&amp;quot;, &amp;quot;wells@g.ru&amp;quot;, &amp;quot;01-JAN-2002&amp;quot;, &amp;quot;DBA&amp;quot;, 20000,2, 1005 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id ,manager_id)&lt;br /&gt;
  2                 values( 1003, &amp;quot;Bliss&amp;quot;, &amp;quot;bliss@g.ru&amp;quot;, &amp;quot;01-JAN-2002&amp;quot;, &amp;quot;PROG&amp;quot;, 24000,3 ,1004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id, manager_id)&lt;br /&gt;
  2                 values( 1004,  &amp;quot;Kyte&amp;quot;, &amp;quot;tkyte@a.ru&amp;quot;, SYSDATE-3650, &amp;quot;MGR&amp;quot;,25000 ,4, 1005);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id, manager_id)&lt;br /&gt;
  2                 values( 1005, &amp;quot;Viper&amp;quot;, &amp;quot;sdillon@a .ru&amp;quot;, SYSDATE, &amp;quot;PROG&amp;quot;, 20000, 1, 1006);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id,manager_id)&lt;br /&gt;
  2                 values( 1006, &amp;quot;Beck&amp;quot;, &amp;quot;clbeck@g.ru&amp;quot;, SYSDATE, &amp;quot;PROG&amp;quot;, 20000, 2, null);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id, manager_id)&lt;br /&gt;
  2                 values( 1007, &amp;quot;Java&amp;quot;, &amp;quot;java01@g.ru&amp;quot;, SYSDATE, &amp;quot;PROG&amp;quot;, 20000, 3, 1006);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id, manager_id)&lt;br /&gt;
  2                 values( 1008, &amp;quot;Oracle&amp;quot;, &amp;quot;oracle1@g.ru&amp;quot;, SYSDATE, &amp;quot;DBA&amp;quot;, 20000, 4, 1006);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employees;&lt;br /&gt;
EMPLOYEE_ID LAST_NAME                                          EMAIL                          HIRE_DATE JOB_ID                         DEPARTMENT_ID     SALARY MANAGER_ID&lt;br /&gt;
----------- -------------------------------------------------- ------------------------------ --------- ------------------------------ ------------- ---------- ----------&lt;br /&gt;
       1001 Lawson                                             lawson@g.ru                   01-JAN-02 MGR                                        1      30000       1004&lt;br /&gt;
       1002 Wells                                              wells@g.ru                    01-JAN-02 DBA                                        2      20000       1005&lt;br /&gt;
       1003 Bliss                                              bliss@g.ru                    01-JAN-02 PROG                                       3      24000       1004&lt;br /&gt;
       1004 Kyte                                               tkyte@a.ru                    14-JUN-98 MGR                                        4      25000       1005&lt;br /&gt;
       1005 Viper                                              sdillon@a .ru                 11-JUN-08 PROG                                       1      20000       1006&lt;br /&gt;
       1006 Beck                                               clbeck@g.ru                   11-JUN-08 PROG                                       2      20000&lt;br /&gt;
       1007 Java                                               java01@g.ru                   11-JUN-08 PROG                                       3      20000       1006&lt;br /&gt;
       1008 Oracle                                             oracle1@g.ru                  11-JUN-08 DBA                                        4      20000       1006&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;  declare&lt;br /&gt;
  2      cursor emps&lt;br /&gt;
  3      is select *&lt;br /&gt;
  4           from employees&lt;br /&gt;
  5          where rownum &amp;lt; 6&lt;br /&gt;
  6          order by 1;&lt;br /&gt;
  7&lt;br /&gt;
  8      emp employees%rowtype;&lt;br /&gt;
  9      row number := 1;&lt;br /&gt;
 10    begin&lt;br /&gt;
 11      open emps;&lt;br /&gt;
 12      fetch emps into emp;&lt;br /&gt;
 13&lt;br /&gt;
 14      loop&lt;br /&gt;
 15        if emps%FOUND then&lt;br /&gt;
 16          dbms_output.put_line(&amp;quot;Looping over record &amp;quot; ||row|| &amp;quot; of &amp;quot; ||&lt;br /&gt;
 17                               emps%ROWCOUNT);&lt;br /&gt;
 18          fetch emps into emp;&lt;br /&gt;
 19          row := row + 1;&lt;br /&gt;
 20        elsif emps%NOTFOUND then&lt;br /&gt;
 21          exit;&lt;br /&gt;
 22        end if;&lt;br /&gt;
 23      end loop;&lt;br /&gt;
 24&lt;br /&gt;
 25      if emps%ISOPEN then&lt;br /&gt;
 26        close emps;&lt;br /&gt;
 27      end if;&lt;br /&gt;
 28    end;&lt;br /&gt;
 29    /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employees;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;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;
==Demonstrates the %ROWCOUNT cursor attribute by using a single-row implicit cursor based on the DUAL pseudotable==&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;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    n NUMBER;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    SELECT 1 INTO n FROM dual;&lt;br /&gt;
  5    dbms_output.put_line(&amp;quot;Selected [&amp;quot;||SQL%ROWCOUNT||&amp;quot;]&amp;quot;);&lt;br /&gt;
  6  END;&lt;br /&gt;
  7  /&lt;br /&gt;
Selected [1]&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==IF csr_org%ROWCOUNT = 1 THEN==&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;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2       CURSOR csr_org IS&lt;br /&gt;
  3             SELECT empno, ename FROM   emp;&lt;br /&gt;
  4             num_total_rows NUMBER;&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6           FOR idx IN csr_org LOOP&lt;br /&gt;
  7                 IF csr_org%ROWCOUNT = 1 THEN&lt;br /&gt;
  8                    dbms_output.put_line(&amp;quot;-----&amp;quot;);&lt;br /&gt;
  9                 END IF;&lt;br /&gt;
 10                 dbms_output.put_line(&amp;quot;Total Organizations = &amp;quot;||to_char(num_total_rows));&lt;br /&gt;
 11                 num_total_rows := csr_org%ROWCOUNT;&lt;br /&gt;
 12         END LOOP;&lt;br /&gt;
 13         IF num_total_rows &amp;gt; 0 THEN&lt;br /&gt;
 14           dbms_output.new_line;&lt;br /&gt;
 15           dbms_output.put_line(&amp;quot;Total Organizations = &amp;quot;||to_char(num_total_rows));&lt;br /&gt;
 16         END IF;&lt;br /&gt;
 17  END;&lt;br /&gt;
 18  /&lt;br /&gt;
-----&lt;br /&gt;
Total Organizations =&lt;br /&gt;
Total Organizations = 1&lt;br /&gt;
Total Organizations = 2&lt;br /&gt;
Total Organizations = 3&lt;br /&gt;
Total Organizations = 4&lt;br /&gt;
Total Organizations = 5&lt;br /&gt;
Total Organizations = 6&lt;br /&gt;
Total Organizations = 7&lt;br /&gt;
Total Organizations = 8&lt;br /&gt;
Total Organizations = 9&lt;br /&gt;
Total Organizations = 10&lt;br /&gt;
Total Organizations = 11&lt;br /&gt;
Total Organizations = 12&lt;br /&gt;
Total Organizations = 13&lt;br /&gt;
Total Organizations = 14&lt;br /&gt;
PL/SQL procedure successfully completed.&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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;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;
==Implicit Cursor Attributes: If the previous UPDATE statement didn&amp;quot;t match any rows, insert a new row into the place table==&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;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE place (&lt;br /&gt;
  2    room_id          NUMBER(5) PRIMARY KEY,&lt;br /&gt;
  3    building         VARCHAR2(15),&lt;br /&gt;
  4    room_number      NUMBER(4),&lt;br /&gt;
  5    number_seats     NUMBER(4),&lt;br /&gt;
  6    description      VARCHAR2(50)&lt;br /&gt;
  7    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20001, &amp;quot;Building 7&amp;quot;, 201, 1000, &amp;quot;Large Lecture Hall&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20002, &amp;quot;Building 6&amp;quot;, 101, 500, &amp;quot;Small Lecture Hall&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20003, &amp;quot;Building 6&amp;quot;, 150, 50, &amp;quot;Discussion Room A&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20004, &amp;quot;Building 6&amp;quot;, 160, 50, &amp;quot;Discussion Room B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats,description)&lt;br /&gt;
  2             VALUES (20005, &amp;quot;Building 6&amp;quot;, 170, 50, &amp;quot;Discussion Room C&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20006, &amp;quot;Music Building&amp;quot;, 100, 10, &amp;quot;Music Practice Room&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20007, &amp;quot;Music Building&amp;quot;, 200, 1000, &amp;quot;Concert Room&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats, description)&lt;br /&gt;
  2             VALUES (20008, &amp;quot;Building 7&amp;quot;, 300, 75, &amp;quot;Discussion Room D&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO place (room_id, building, room_number, number_seats,description)&lt;br /&gt;
  2             VALUES (20009, &amp;quot;Building 7&amp;quot;, 310, 50, &amp;quot;Discussion Room E&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2    UPDATE place&lt;br /&gt;
  3      SET number_seats = 100&lt;br /&gt;
  4      WHERE room_id = 99980;&lt;br /&gt;
  5    IF SQL%ROWCOUNT = 0 THEN&lt;br /&gt;
  6      INSERT INTO place (room_id, number_seats)&lt;br /&gt;
  7        VALUES (99980, 100);&lt;br /&gt;
  8    END IF;&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table place;&lt;br /&gt;
Table dropped.&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;
==modified the cursor FOR LOOP presented earlier to include %ROWCOUNT:==&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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&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; DECLARE&lt;br /&gt;
  2       CURSOR csr_org IS&lt;br /&gt;
  3             SELECT empno, ename FROM   emp;&lt;br /&gt;
  4             num_total_rows NUMBER;&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6             FOR idx IN csr_org LOOP&lt;br /&gt;
  7                 dbms_output.put_line(idx.empno||&amp;quot; &amp;quot;||idx.ename);&lt;br /&gt;
  8                 num_total_rows := csr_org%ROWCOUNT;&lt;br /&gt;
  9             END LOOP;&lt;br /&gt;
 10             IF num_total_rows &amp;gt; 0 THEN&lt;br /&gt;
 11               dbms_output.new_line;&lt;br /&gt;
 12               dbms_output.put_line(&amp;quot;Total Organizations = &amp;quot;||to_char(num_total_rows));&lt;br /&gt;
 13             END IF;&lt;br /&gt;
 14  END;&lt;br /&gt;
 15  /&lt;br /&gt;
7369 SMITH&lt;br /&gt;
7499 ALLEN&lt;br /&gt;
7521 WARD&lt;br /&gt;
7566 JONES&lt;br /&gt;
7654 MARTIN&lt;br /&gt;
7698 BLAKE&lt;br /&gt;
7782 CLARK&lt;br /&gt;
7788 SCOTT&lt;br /&gt;
7839 KING&lt;br /&gt;
7844 TURNER&lt;br /&gt;
7876 ADAMS&lt;br /&gt;
7900 JAMES&lt;br /&gt;
7902 FORD&lt;br /&gt;
7934 MILLER&lt;br /&gt;
Total Organizations = 14&lt;br /&gt;
PL/SQL procedure successfully completed.&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;&lt;br /&gt;
SQL&amp;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;
==sql%rowcount macro==&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;&lt;br /&gt;
SQL&amp;gt; create table myTable2 ( cnt int );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable2 values ( 0 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t ( x int check ( x&amp;gt;0 ) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create trigger t_trigger before insert or delete on t for each row&lt;br /&gt;
  2  begin&lt;br /&gt;
  3     if ( inserting ) then&lt;br /&gt;
  4          update myTable2 set cnt = cnt +1;&lt;br /&gt;
  5     else&lt;br /&gt;
  6          update myTable2 set cnt = cnt -1;&lt;br /&gt;
  7     end if;&lt;br /&gt;
  8     dbms_output.put_line( &amp;quot;fired and updated &amp;quot;  || sql%rowcount || &amp;quot; rows&amp;quot; );&lt;br /&gt;
  9  end;&lt;br /&gt;
 10  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace procedure p&lt;br /&gt;
  2  as&lt;br /&gt;
  3  begin&lt;br /&gt;
  4          insert into t values ( 1 );&lt;br /&gt;
  5          insert into t values (-1 );&lt;br /&gt;
  6  end;&lt;br /&gt;
  7  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt; select * from myTable2;&lt;br /&gt;
       CNT&lt;br /&gt;
----------&lt;br /&gt;
         0&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2          p;&lt;br /&gt;
  3  end;&lt;br /&gt;
  4  /&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
begin&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-02290: check constraint (sqle.SYS_C0010265) violated&lt;br /&gt;
ORA-06512: at &amp;quot;sqle.P&amp;quot;, line 5&lt;br /&gt;
ORA-06512: at line 2&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt; select * from myTable2;&lt;br /&gt;
       CNT&lt;br /&gt;
----------&lt;br /&gt;
         0&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2      p;&lt;br /&gt;
  3  exception&lt;br /&gt;
  4      when others then null;&lt;br /&gt;
  5  end;&lt;br /&gt;
  6  /&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
         X&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
SQL&amp;gt; select * from myTable2;&lt;br /&gt;
       CNT&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; rollback;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2      savepoint sp;&lt;br /&gt;
  3      p;&lt;br /&gt;
  4  exception&lt;br /&gt;
  5      when others then&lt;br /&gt;
  6          rollback to sp;&lt;br /&gt;
  7  end;&lt;br /&gt;
  8  /&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt; select * from myTable2;&lt;br /&gt;
       CNT&lt;br /&gt;
----------&lt;br /&gt;
         0&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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; drop table myTable2;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>