Buenas, me parece que el problema está en la variable destino, esta debe ser de tipo INTEGER, en caso contrario te dará el error que indicas.
De todas formas debes estar seguro que el valor del campo o la subcadena que extraigas contenga valores comprendidos entre "0" y "9", no importa que el valor extraido de la cadena sea "08" al realizar la conversión esta se transformara en un 8.
Ejemplo:
Código SQL
[-]Provincia = cast(cdprov as integer)
Saludos.