(1) Currently convert (char (N), XX, 1) means return the value in "money"
format (e.g., "123,456.89"). Allow convert (char (N), XX, 2) to return XX
as a
character string that is left-padded with zeroes. There have been postings
that show how to do this but this would certainly be simpler. (I note that
a str_replace function is being released in 12.5.0.3 to simplify some string
manipulations. But it's not related to this suggestion.)

(2) Replace the convert procedure with individual functions. I would much
rather code:
select XX = char (1 + smallint ('0005'), 4, 2) than
select XX = convert (char (4), 1 + convert (smallint, '0005'), 2)

(3) I am not recommending that one use nested cursors ... at least not
directly. But if the language allows for it then it should do it cleanly.
Currently there is @@sqlstatus which is a session (versus global) level
variable. So if one has multiple or nested cursors to which cursor does
@@sqlstatus refer to? (Answer: the last fetch regardless of the associated
cursor.) I
would prefer to have a function associated with a cursor:

declare CURSOR_NAME cursor for ...
open CURSOR_NAME
fetch CURSOR_NAME into ...
while (sqlstatus (CURSOR_NAME) = 0)
...