Lo más probable es que el error se esté generando debido a que el cliente y el servidor de la base de datos tiene configurado diferente Juego de caracteres.
Para corregir este problema es necesario igualar el juego de caracteres de la base de datos y del cliente que esta realizando la consulta , inserción y actualización (Es recomendable revisar y unificar la juego de caracteres de cada uno de los clientes que se conecte a la BD. de lo contrario podría existir discrepancia entre lo que diferentes clientes pueden ver)
1.- Ejecuta la siguiente consulta en la base de datos Oracle con la que estas experimentando el problema:
SELECT *
FROM V$NLS_PARAMETERS
WHERE PARAMETER in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');
El resultado de la consulta deberá ser similar al siguiente:
2.- Genera una cadena con los tres valores devueltos. La cadena deberá tener la siguiente estructura: [
NS_LANGUAGE_[NLS_TERRITORY].[NLS_CHARACTERSET]
3.- Agrega una nueva entrada en las variables del entorno del sistema (Inicio>>Este Equipo>>(botón secundario)>>Propiedades>>Configuración Avanzada del sistema.>>Variables del Entorno)
Ejemplo: MEXICAN SPANISH_MEXICO.WE8ISO8859P1
4.- Reinicia el sistema