Cursor <str> is read-only Explanation: A cursor is read-only if it includes a DISTINCT phrase, a aggregate function, a GROUP BY, HAVING, or UNION, or more than one table in its FROM clause. Read-only cursors cannot include FOR UPDATE clauses and cannot be used in UPDATE or DELETE statements. User Action: Either change whatever made the cursor read-only, or do not attempt to update the cursor.