Here is the reason for the Ambiguous cursor and resolution for how to avoid it. It’s useful for interviews and projects as well.
- 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.
Get new content delivered directly to your inbox.