Zu 1)
Da gibts keine Umgehung.
Du kannst zwar eine View mit einem cast auf DIGITS darüberlegen, ebr wer weiß schon was sonst noch damit genacht werden wenn das Ergebnis dann nicht in die Hostvariable passt wegen Umsetzungsfehler.

zu 2)
Hier muss man schon noch den Cursor-Status prüfen.