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

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Cursor/Cursor_parameters&amp;diff=1006&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_parameters&amp;diff=1006&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_parameters&amp;diff=1007&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_parameters&amp;diff=1007&amp;oldid=prev"/>
				<updated>2010-05-26T09:54:42Z</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 parameters are used to specify the classid for which lecturer is listed at runtime==&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; 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; CREATE TABLE DEPT (DEPTNO NUMBER(2),DNAME VARCHAR2(14),LOC VARCHAR2(13) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (10, &amp;quot;ACCOUNTING&amp;quot;, &amp;quot;NEW YORK&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (20, &amp;quot;RESEARCH&amp;quot;, &amp;quot;DALLAS&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (30, &amp;quot;SALES&amp;quot;, &amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (40, &amp;quot;OPERATIONS&amp;quot;, &amp;quot;BOSTON&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 serverout on;&lt;br /&gt;
SQL&amp;gt; -- cursor parameters are used to specify the classid for which lecturer is listed at runtime:&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2&lt;br /&gt;
  3     CURSOR deptList IS&lt;br /&gt;
  4     SELECT deptno&lt;br /&gt;
  5     FROM dept&lt;br /&gt;
  6     WHERE loc = &amp;quot;NEW YORK&amp;quot;;&lt;br /&gt;
  7&lt;br /&gt;
  8     CURSOR employee_enrolled (p_deptno NUMBER) IS&lt;br /&gt;
  9     SELECT *&lt;br /&gt;
 10     FROM emp&lt;br /&gt;
 11     WHERE deptno = p_deptno;&lt;br /&gt;
 12&lt;br /&gt;
 13  BEGIN&lt;br /&gt;
 14&lt;br /&gt;
 15     FOR depts IN deptList LOOP&lt;br /&gt;
 16          FOR employee_record IN&lt;br /&gt;
 17           employee_enrolled(depts.deptno) LOOP&lt;br /&gt;
 18&lt;br /&gt;
 19               DBMS_OUTPUT.PUT_LINE(employee_record.empno);&lt;br /&gt;
 20           END LOOP;&lt;br /&gt;
 21     END LOOP;&lt;br /&gt;
 22  END;&lt;br /&gt;
 23  /&lt;br /&gt;
7782&lt;br /&gt;
7839&lt;br /&gt;
7934&lt;br /&gt;
PL/SQL procedure successfully completed.&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 dept;&lt;br /&gt;
Table dropped.&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;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cursor without parameters (simplest)==&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;&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   Employee&amp;quot;s Fi LAST_NAME  START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- ------------- ---------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
01   Jason         Martin     25-JUL-96 25-JUL-06  $1,234.56 Toronto    Programmer&lt;br /&gt;
02   Alison        Mathews    21-MAR-76 21-FEB-86  $6,661.78 Vancouver  Tester&lt;br /&gt;
03   James         Smith      12-DEC-78 15-MAR-90  $6,544.78 Vancouver  Tester&lt;br /&gt;
04   Celia         Rice       24-OCT-82 21-APR-99  $2,344.78 Vancouver  Manager&lt;br /&gt;
05   Robert        Black      15-JAN-84 08-AUG-98  $2,334.78 Vancouver  Tester&lt;br /&gt;
06   Linda         Green      30-JUL-87 04-JAN-96  $4,322.78 New York   Tester&lt;br /&gt;
07   David         Larry      31-DEC-90 12-FEB-98  $7,897.78 New York   Manager&lt;br /&gt;
08   James         Cat        17-SEP-96 15-APR-02  $1,232.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; -- Cursor without parameters (simplest)&lt;br /&gt;
SQL&amp;gt;     CREATE OR REPLACE Function FindEmployeeSalary ( name_in IN varchar2 ) RETURN number&lt;br /&gt;
  2      IS&lt;br /&gt;
  3          mySalary number;&lt;br /&gt;
  4&lt;br /&gt;
  5          CURSOR c1&lt;br /&gt;
  6          IS&lt;br /&gt;
  7             SELECT salary&lt;br /&gt;
  8              from employee&lt;br /&gt;
  9              where first_name = name_in;&lt;br /&gt;
 10&lt;br /&gt;
 11      BEGIN&lt;br /&gt;
 12&lt;br /&gt;
 13          open c1;&lt;br /&gt;
 14          fetch c1 into mySalary;&lt;br /&gt;
 15&lt;br /&gt;
 16          if c1%notfound then&lt;br /&gt;
 17               mySalary := 0;&lt;br /&gt;
 18          end if;&lt;br /&gt;
 19&lt;br /&gt;
 20          close c1;&lt;br /&gt;
 21&lt;br /&gt;
 22      RETURN mySalary;&lt;br /&gt;
 23&lt;br /&gt;
 24      END;&lt;br /&gt;
 25      /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;     select FindEmployeeSalary(first_name) from employee;&lt;br /&gt;
FINDEMPLOYEESALARY(FIRST_NAME)&lt;br /&gt;
------------------------------&lt;br /&gt;
                       1234.56&lt;br /&gt;
                       6661.78&lt;br /&gt;
                       6544.78&lt;br /&gt;
                       2344.78&lt;br /&gt;
                       2334.78&lt;br /&gt;
                       4322.78&lt;br /&gt;
                       7897.78&lt;br /&gt;
                       6544.78&lt;br /&gt;
8 rows selected.&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;
==Cursor with parameter==&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; set serveroutput on&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;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2    cursor cursorValue (p_deptid in number)&lt;br /&gt;
  3    is select *&lt;br /&gt;
  4         from employees&lt;br /&gt;
  5        where department_id = p_deptid;&lt;br /&gt;
  6&lt;br /&gt;
  7    l_emp employees%rowtype;&lt;br /&gt;
  8  begin&lt;br /&gt;
  9    open cursorValue(30);&lt;br /&gt;
 10    loop&lt;br /&gt;
 11      fetch cursorValue into l_emp;&lt;br /&gt;
 12      exit when cursorValue%notfound;&lt;br /&gt;
 13      dbms_output.put(&amp;quot;Employee id &amp;quot; || l_emp.employee_id || &amp;quot; is &amp;quot;);&lt;br /&gt;
 14      dbms_output.put_line(l_emp.last_name);&lt;br /&gt;
 15    end loop;&lt;br /&gt;
 16    close cursorValue;&lt;br /&gt;
 17&lt;br /&gt;
 18    dbms_output.put_line(&amp;quot;Getting employees for department 90&amp;quot;);&lt;br /&gt;
 19    open cursorValue(90);&lt;br /&gt;
 20    loop&lt;br /&gt;
 21      fetch cursorValue into l_emp;&lt;br /&gt;
 22      exit when cursorValue%notfound;&lt;br /&gt;
 23      dbms_output.put(&amp;quot;Employee id &amp;quot; || l_emp.employee_id || &amp;quot; is &amp;quot;);&lt;br /&gt;
 24      dbms_output.put_line(l_emp.last_name);&lt;br /&gt;
 25    end loop;&lt;br /&gt;
 26    close cursorValue;&lt;br /&gt;
 27  end;&lt;br /&gt;
 28  /&lt;br /&gt;
Getting employees for department 90&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;
==Declaration of a parameterized cursor which has two parameters==&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 session (&lt;br /&gt;
  2    department       CHAR(3),&lt;br /&gt;
  3    course           NUMBER(3),&lt;br /&gt;
  4    description      VARCHAR2(2000),&lt;br /&gt;
  5    max_lecturer     NUMBER(3),&lt;br /&gt;
  6    current_lecturer NUMBER(3),&lt;br /&gt;
  7    num_credits      NUMBER(1),&lt;br /&gt;
  8    room_id          NUMBER(5)&lt;br /&gt;
  9    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;HIS&amp;quot;, 101, &amp;quot;History 101&amp;quot;, 30, 11, 4, 20000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;HIS&amp;quot;, 301, &amp;quot;History 301&amp;quot;, 30, 0, 4, 20004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;CS&amp;quot;, 101, &amp;quot;Computer Science 101&amp;quot;, 50, 0, 4, 20001);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;ECN&amp;quot;, 203, &amp;quot;Economics 203&amp;quot;, 15, 0, 3, 20002);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;CS&amp;quot;, 102, &amp;quot;Computer Science 102&amp;quot;, 35, 3, 4, 20003);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;MUS&amp;quot;, 410, &amp;quot;Music 410&amp;quot;, 5, 4, 3, 20005);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;ECN&amp;quot;, 101, &amp;quot;Economics 101&amp;quot;, 50, 0, 4, 20007);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;NUT&amp;quot;, 307, &amp;quot;Nutrition 307&amp;quot;, 20, 2, 4, 20008);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;MUS&amp;quot;, 100, &amp;quot;Music 100&amp;quot;, 100, 0, 3, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    CURSOR c_session(p_Department session.department%TYPE,&lt;br /&gt;
  3                     p_Course session.course%TYPE) IS&lt;br /&gt;
  4    SELECT *&lt;br /&gt;
  5      FROM session&lt;br /&gt;
  6      WHERE department = p_Department&lt;br /&gt;
  7      AND course = p_Course;&lt;br /&gt;
  8  BEGIN&lt;br /&gt;
  9    OPEN c_session(&amp;quot;HIS&amp;quot;, 101);&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table session;&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;
==Explicit cursor with parameter==&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 departments&lt;br /&gt;
  2  (department_id           number(10)            not null,&lt;br /&gt;
  3   department_name      varchar2(50)      not null,&lt;br /&gt;
  4   CONSTRAINT departments_pk PRIMARY KEY (department_id)&lt;br /&gt;
  5  );&lt;br /&gt;
Table 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; insert into departments ( department_id, department_name )&lt;br /&gt;
  2                    values( 1,             &amp;quot;Data Group&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into departments ( department_id, department_name )&lt;br /&gt;
  2                    values( 2,             &amp;quot;Purchasing&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into departments ( department_id, department_name )&lt;br /&gt;
  2                    values( 3,             &amp;quot;Call Center&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into departments ( department_id, department_name )&lt;br /&gt;
  2                    values( 4,             &amp;quot;Communication&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;&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    CONSTRAINT           employees_pk PRIMARY KEY (employee_id),&lt;br /&gt;
 11    CONSTRAINT           fk_departments FOREIGN KEY (department_id) REFERENCES departments(department_id)&lt;br /&gt;
 12  );&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; select * from departments;&lt;br /&gt;
DEPARTMENT_ID Department Names&lt;br /&gt;
------------- ------------------------------&lt;br /&gt;
            1 Data Group&lt;br /&gt;
            2 Purchasing&lt;br /&gt;
            3 Call Center&lt;br /&gt;
            4 Communication&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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      cursor cursorValue (p_deptid in number)&lt;br /&gt;
  3      is select *&lt;br /&gt;
  4           from employees&lt;br /&gt;
  5          where department_id = p_deptid;&lt;br /&gt;
  6&lt;br /&gt;
  7      l_emp employees%rowtype;&lt;br /&gt;
  8    begin&lt;br /&gt;
  9      dbms_output.put_line(&amp;quot;Getting employees for department 30&amp;quot;);&lt;br /&gt;
 10      open cursorValue(30);&lt;br /&gt;
 11      loop&lt;br /&gt;
 12        fetch cursorValue into l_emp;&lt;br /&gt;
 13        exit when cursorValue%notfound;&lt;br /&gt;
 14        dbms_output.put(&amp;quot;Employee id &amp;quot; || l_emp.employee_id || &amp;quot; is &amp;quot;);&lt;br /&gt;
 15        dbms_output.put_line(l_emp.last_name);&lt;br /&gt;
 16      end loop;&lt;br /&gt;
 17      close cursorValue;&lt;br /&gt;
 18&lt;br /&gt;
 19      dbms_output.put_line(&amp;quot;Getting employees for department 90&amp;quot;);&lt;br /&gt;
 20      open cursorValue(90);&lt;br /&gt;
 21      loop&lt;br /&gt;
 22        fetch cursorValue into l_emp;&lt;br /&gt;
 23        exit when cursorValue%notfound;&lt;br /&gt;
 24        dbms_output.put(&amp;quot;Employee id &amp;quot; || l_emp.employee_id || &amp;quot; is &amp;quot;);&lt;br /&gt;
 25        dbms_output.put_line(l_emp.last_name);&lt;br /&gt;
 26      end loop;&lt;br /&gt;
 27      close cursorValue;&lt;br /&gt;
 28    end;&lt;br /&gt;
 29    /&lt;br /&gt;
Getting employees for department 30&lt;br /&gt;
Getting employees for department 90&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employees cascade constraints;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table departments cascade constraints;&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;
==For loop with parameterized 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;
  &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(p_hrc_code NUMBER) IS&lt;br /&gt;
  3              SELECT empno, ename FROM   emp;&lt;br /&gt;
  4              v_org_rec csr_org%ROWTYPE;&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6           FOR idx in csr_org(1) LOOP&lt;br /&gt;
  7                 dbms_output.put_line(v_org_rec.empno||&amp;quot; &amp;quot;||v_org_rec.ename);&lt;br /&gt;
  8           END LOOP;&lt;br /&gt;
  9            FOR idx in csr_org(2) LOOP&lt;br /&gt;
 10                 dbms_output.put_line(v_org_rec.empno||&amp;quot; &amp;quot;||v_org_rec.ename);&lt;br /&gt;
 11           END LOOP;&lt;br /&gt;
 12   END;&lt;br /&gt;
 13  /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
==Number Parameterized Cursors==&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; DECLARE&lt;br /&gt;
  2       CURSOR csr_org(p_hrc_code NUMBER) IS&lt;br /&gt;
  3              SELECT empno, ename FROM   emp;&lt;br /&gt;
  4              v_org_rec csr_org%ROWTYPE;&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6          OPEN csr_org(1);&lt;br /&gt;
  7          LOOP&lt;br /&gt;
  8                FETCH csr_org INTO v_org_rec;&lt;br /&gt;
  9                EXIT WHEN csr_org%NOTFOUND;&lt;br /&gt;
 10                 dbms_output.put_line(v_org_rec.empno||&amp;quot; &amp;quot;||v_org_rec.ename);&lt;br /&gt;
 11          END LOOP;&lt;br /&gt;
 12          CLOSE csr_org;&lt;br /&gt;
 13          OPEN csr_org(2);&lt;br /&gt;
 14          LOOP&lt;br /&gt;
 15                 FETCH csr_org INTO v_org_rec;&lt;br /&gt;
 16                 EXIT WHEN csr_org%NOTFOUND;&lt;br /&gt;
 17                 dbms_output.put_line(v_org_rec.empno||&amp;quot; &amp;quot;||v_org_rec.ename);&lt;br /&gt;
 18          END LOOP;&lt;br /&gt;
 19          CLOSE csr_org;&lt;br /&gt;
 20   END;&lt;br /&gt;
 21  /&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;
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;
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;
==Open cursor by index==&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 t ( object_id primary key, object_name )&lt;br /&gt;
  2  organization index&lt;br /&gt;
  3  as&lt;br /&gt;
  4  select object_id, object_name from all_objects;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace procedure explicit&lt;br /&gt;
  2  as&lt;br /&gt;
  3      l_object_name t.object_name%type;&lt;br /&gt;
  4      l_dummy       t.object_name%type;&lt;br /&gt;
  5&lt;br /&gt;
  6      cursor c( l_object_id in number)is&lt;br /&gt;
  7      select object_name&lt;br /&gt;
  8      from t&lt;br /&gt;
  9      where object_id = l_object_id;&lt;br /&gt;
 10  begin&lt;br /&gt;
 11      for i in 1 .. 30000&lt;br /&gt;
 12      loop&lt;br /&gt;
 13          open c(i);&lt;br /&gt;
 14              fetch c into l_object_name;&lt;br /&gt;
 15          close c;&lt;br /&gt;
 16      end loop;&lt;br /&gt;
 17  end;&lt;br /&gt;
 18  /&lt;br /&gt;
Procedure 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; drop table t;&lt;br /&gt;
Table dropped.&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>