91-9990449935 0120-4256464 |
PL/SQL CursorWhen an SQL statement is processed, Oracle creates a memory area known as context area. A cursor is a pointer to this context area. It contains all information needed for processing the statement. In PL/SQL, the context area is controlled by Cursor. A cursor contains information on a select statement and the rows of data accessed by it. A cursor is used to referred to a program to fetch and process the rows returned by the SQL statement, one at a time. There are two types of cursors:
1) PL/SQL Implicit CursorsThe implicit cursors are automatically generated by Oracle while an SQL statement is executed, if you don?t use an explicit cursor for the statement. These are created by default to process the statements when DML statements like INSERT, UPDATE, DELETE etc. are executed. Orcale provides some attributes known as Implicit cursor?s attributes to check the status of DML operations. Some of them are: %FOUND, %NOTFOUND, %ROWCOUNT and %ISOPEN. For example: When you execute the SQL statements like INSERT, UPDATE, DELETE then the cursor attributes tell whether any rows are affected and how many have been affected. If you run a SELECT INTO statement in PL/SQL block, the implicit cursor attribute can be used to find out whether any row has been returned by the SELECT statement. It will return an error if there no data is selected. The following table soecifies the status of the cursor with each of its attribute.
PL/SQL Implicit Cursor ExampleCreate customers table and have records:
Let's execute the following program to update the table and increase salary of each customer by 5000. Here, SQL%ROWCOUNT attribute is used to determine the number of rows affected: Create procedure: Output: 6 customers updated PL/SQL procedure successfully completed. Now, if you check the records in customer table, you will find that the rows are updated.
2) PL/SQL Explicit CursorsThe Explicit cursors are defined by the programmers to gain more control over the context area. These cursors should be defined in the declaration section of the PL/SQL block. It is created on a SELECT statement which returns more than one row. Following is the syntax to create an explicit cursor:Syntax of explicit cursorFollowing is the syntax to create an explicit cursor: Steps:You must follow these steps while working with an explicit cursor.
1) Declare the cursor:It defines the cursor with a name and the associated SELECT statement. Syntax for explicit cursor decleration 2) Open the cursor:It is used to allocate memory for the cursor and make it easy to fetch the rows returned by the SQL statements into it. Syntax for cursor open: 3) Fetch the cursor:It is used to access one row at a time. You can fetch rows from the above-opened cursor as follows: Syntax for cursor fetch: 4) Close the cursor:It is used to release the allocated memory. The following syntax is used to close the above-opened cursors. Syntax for cursor close: PL/SQL Explicit Cursor ExampleExplicit cursors are defined by programmers to gain more control over the context area. It is defined in the declaration section of the PL/SQL block. It is created on a SELECT statement which returns more than one row. Let's take an example to demonstrate the use of explicit cursor. In this example, we are using the already created CUSTOMERS table. Create customers table and have records:
Create procedure: Execute the following program to retrieve the customer name and address. Output: 1 Ramesh Allahabad 2 Suresh Kanpur 3 Mahesh Ghaziabad 4 Chandan Noida 5 Alex Paris 6 Sunita Delhi PL/SQL procedure successfully completed.
Next TopicPL/SQL Exception
|