Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


Is it Possible to declare or create a cursor for UPDATE of
table? If yes tell me how? If no Tell me why?



Is it Possible to declare or create a cursor for UPDATE of table? If yes tell me how? If no Tell m..

Answer / lu

yes, read this :
Updating a column: You can update columns in the rows that
you retrieve. Updating a row after you use a cursor to
retrieve it is called a positioned update. If you intend to
perform any positioned updates on the identified table,
include the FOR UPDATE clause. The FOR UPDATE clause has
two forms:
• The first form is FOR UPDATE OF column-list. Use
this form when you know in advance which columns you need
to update.
• The second form is FOR UPDATE, with no column list.
Use this form when you might use the cursor to update any
of the columns of the table.
For example, you can use this cursor to update only the
SALARY column of the employee table:

EXEC SQL
DECLARE C1 CURSOR FOR
SELECT EMPNO, FIRSTNME, MIDINIT, LASTNAME, SALARY
FROM DSN8810.EMP X
WHERE EXISTS
(SELECT *
FROM DSN8810.PROJ Y
WHERE X.EMPNO=Y.RESPEMP
AND Y.PROJNO=:GOODPROJ)
FOR UPDATE OF SALARY;

If you might use the cursor to update any column of the
employee table, define the cursor like this:

EXEC SQL
DECLARE C1 CURSOR FOR
SELECT EMPNO, FIRSTNME, MIDINIT, LASTNAME, SALARY
FROM DSN8810.EMP X
WHERE EXISTS
(SELECT *
FROM DSN8810.PROJ Y
WHERE X.EMPNO=Y.RESPEMP
AND Y.PROJNO=:GOODPROJ)
FOR UPDATE;

DB2 must do more processing when you use the FOR UPDATE
clause without a column list than when you use the FOR
UPDATE clause with a column list. Therefore, if you intend
to update only a few columns of a table, your program can
run more efficiently if you include a column list.
The precompiler options NOFOR and STDSQL affect the use of
the FOR UPDATE clause in static SQL statements. If you do
not specify the FOR UPDATE clause in a DECLARE CURSOR
statement, and you do not specify the STDSQL(YES) option or
the NOFOR precompiler options, you receive an error if you
execute a positioned UPDATE statement.

Is This Answer Correct ?    18 Yes 1 No

Post New Answer

More DB2 Interview Questions

I have 3 cursors declared. Cursor1 retieves some data. Based on this curso2 will also fetches some data. In cursor3 (using for some updation) I'm using the data retrieved by the above 2 cursor. My question is, while working with cursor3, periodically if I give commit, will all the three crsors will be closed or only cursor3 will be closed?

4 Answers  


What is the difference between cursor stability and repeatable read isolation levels?

0 Answers  


How will fetch last 5 rows from table in db2

6 Answers  


In a DB2-CICS program which is acts as co-ordinator and which is participant?

1 Answers   IBM,


how to resolve -805. give clear explination for that

2 Answers   IBM,


What is db2 bind process?

0 Answers  


what are the copybook changes generally we done?can anyone tell me......... Thanks in advance........

1 Answers  


What is the use of db2?

0 Answers  


Explain the function of data manager.

0 Answers  


how to resolve -811 error. give clear explination

4 Answers   IBM,


Can you access the DB2 Directory table using SQL?

3 Answers  


what is the syntax for FOR UPDATE CLAUSE in cursor declaration and how can u update using cursor? is it possible to update multiple rows at a time.

2 Answers   Syntel,


Categories