Cursor In Oracle PL/SQL

What is cursor?
      A Cursor is a pointer, which works on active set, I.e. which points to only one row at a time in the context area’s ACTIVE SET. A cursor is a construct of pl/sql, used to process multiple rows using a pl/sql block.

Types of cursors:
       1) Implicit: declared for all DML and pl/sql statements.
                           By default it selects one row only.
       2) Explicit:  Declared and named by the programmer.
                           Use explicit cursor to individually process each row returned by a 
                                         Multiple statements, is called ACTIVE SET.
                            Allows the programmer to manually control explicit cursor in the
                                         Pl/sql block

Life Cycle Of A Cursor:
a) declare: create a named sql area
b)Open: identify the active set.
c) Fetch: load the current row in to variables.
d)Close: release the active set.

a)     %is open: evaluates to true if the cursor is open.
b)     %not found: evaluates to true if the most recent fetch does not return a row
c)     %found: evaluates to true if the most recent fetch returns a row.
d)     %row count: evaluates to the total number of rows returned to far.

Example For CURSOR:

1)       Declare
            Vno emp.empno%type;
            Vname emp.ename %type;
            Cursor emp_cursor is
                   Select empno,ename
                            From emp;
            Open cursor;
            For I in 1..10 loop
              Fetch emp_cursor into vno,vname;
              Dbms_output.putline(to_char(vno) ||’ ‘||vname);
            End if;
         E nd;
2)         Begin
              Open emp_cursor;
                  Fetch when emp_cursor % rowcount >10 or
                                                                      Emp_curor % not found;
                 Bdms_output_put_line(to_char(vno)||’ ‘|| vname);
             End loop;
           Close emp_cursor;

A)   cursor for loop is a short cut to process explicit cursors
B)    it has higher performance
C)    cursor for loop requires only the declaration of the cursor, remaining things like opening, fetching and close are automatically take by the cursor for loop
  1)     Declare
            Cursor emp_cursor is
                   Select empno,ename
                            From emp;
            For emp_record in emp_cursor loop
           End loop       

Can we create a cursor without declaring it?

Yes – by using cursor for loop using subqueries.

  FOR emp_record IN ( SELECT empno, ename
                                FROM   emp) LOOP
         -- implicit open and implicit fetch occur
    IF emp_record.empno = 7839 THEN
  END LOOP; -- implicit close occurs

  a) for update clause:
       1) use explicit locking to deny access for the duration of a transaction
       2) lock the rows before update or delete
 Ex : select …….
                    For update[ of column ref] [no_wait]

  b) where current of clause?
        1) use cursor to update or delete the current row
                     Where current of < column ref>



Account Payables,1,Advance Table In OAF,1,AME,1,AOL Concepts,19,AP Holds,1,Apps Initialization,1,Blanket Purchase Orders,1,Blanket Releases,1,Careers,9,Common Errors and Solutions,2,Concurrent Programs,10,Contract Purchase Orders,1,Corporate Culture,3,Corporate Ladder,3,Customer Interface,3,Customization,1,De-Normalization,1,EAM,1,EBS Tutorials,10,Education,16,Emterprise Asset Management,1,English,1,Enterprise Asset Management,1,Entrepreneur,1,Error Fixes,1,Executables,2,Extension,1,fnd_user,1,FNDLOAD,1,Global Agreements,1,Guest Posts,7,Handy Scripts,63,Health Tips,1,Important Apps Queries,1,Infographic,3,Interview Preparation,62,Interview Q/A,68,Inventory Org ID,1,Iproc,4,Iprocurement,4,IT,3,jDeveloper,1,Job Search,1,Key Tables In Oracle Apps,5,Learning English,1,MDS,1,Metadata Tables,2,Multi Org Architecture,2,Normalization,1,O2C,1,OAF Interview,50,OAF Personalization,1,OAF Tutorials,52,OCI,1,Operating Unit,1,Oracle 10g,1,Oracle 11g,1,Oracle Access Manager,1,Oracle ADF,1,Oracle Alerts,2,Oracle AP,12,Oracle Apex,1,Oracle APIs,4,Oracle Application Object Library,19,Oracle Applications,10,Oracle Approvals Management,1,Oracle Apps,4,Oracle Apps DBA,2,Oracle Apps Interviews,36,Oracle Apps Tips,9,Oracle Apps Tutorials,98,Oracle AR,18,Oracle Assets,2,Oracle BAM,1,Oracle BI Publisher,1,Oracle BPEL,1,Oracle BPM,1,Oracle Cloud,1,Oracle Cloud Infrastructure,1,Oracle Dabase Structure,2,Oracle Database Architecture,2,Oracle Database Key Tables,3,Oracle EAM,2,Oracle EBS,5,Oracle Financials,2,Oracle Forms And Reports,17,Oracle Forms Interview Questions,6,Oracle Forms Tutorials,6,Oracle GL,4,Oracle Holds,1,Oracle HRMS,10,Oracle Human Resources,1,Oracle Inventory,4,Oracle Payables,1,Oracle Payroll,1,Oracle POTutorials,1,Oracle Purchasing,7,Oracle Reports Interview,9,Oracle Reports Tutorials,3,Oracle SOA,1,Oracle System Administrator,4,Oracle Workflow,4,Order Management,2,Organization ID,3,Organizations,3,Performance Tuning,2,Personalization,1,PL/SQL Block,1,PL/SQL Interview Questions,11,PL/SQL Scripts,44,PL/SQL Tutorials,53,Planned Purchase Orders,1,PO,1,PO Action History,1,PO_ACTION_HISTORY,1,POracle Purchasing,1,PR,1,Procedures And Functions,2,Profile Options,2,Purchase Orders,1,Purchase Requisition,2,Receipts,1,Request Groups,1,Responsibility,1,Shell Script,1,SOA Tutorials,4,Social Media,1,Software Industry,2,Software Tools,1,SQL And PL/SQL Interview,38,SQL Interview,52,SQL Scripts,38,SQL Tutorials,43,Standard Purchase Orders,1,Troubleshooting,1,Unexpected error,1,Unix/Linux Commands,3,User,1,Value Sets,1,Weblogic,1,XML Publisher,4,
Oracle Apps Guy: Cursor In Oracle PL/SQL
Cursor In Oracle PL/SQL
Oracle Apps Guy
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content