Cita:
Iniciado por kikolice no seria algo como
nom_decod := SUBSTR(E.Name, 1, length(e.name) - instr(e.name, '_') );
Eso en el caso de que sólamente tengas un "_". Pero como ya ha dicho su problema viene cuando tiene un nombre compuesto y tiene varios "_" en un mismo String, y por eso he recomendado hacer un loop para ir recorriendo todo el String hasta parsear todas las "_" en el String.