DB2: What is an Ambiguous Cursor

Here is the reason for the Ambiguous cursor and resolution for how to avoid it. It’s useful for interviews and projects as well.

Ambiguous Cursor

  • When DB2 does not know whether or not you will use the cursor for updating or deleting, it will prepare for a worst-case scenario (that you do perform an update). When DB2 is in doubt, the cursor is called ambiguous. And the access path chosen by the optimizer will not necessarily be the best for the function performed.
  • How to avoid it? use FOR UPDATE OF clause along with UPDATE WHERE CURRENT OF statement. Further, your purpose is only retrieving data, then code FOR FETCH ONLY or FOR READ ONLY statements. 

Related articles

  1. DB2 basic commands
  2. Ambiguous cursors examples

Get new content delivered directly to your inbox.

Author: Srini

Experienced software developer. Skills in Development, Coding, Testing and Debugging. Good Data analytic skills (Data Warehousing and BI). Also skills in Mainframe.