Pregunta

Estoy tratando de realizar operaciones SET en Oracle a través de bases de datos remotas. Estoy utilizando el operador menos.

Mi consulta es como la siguiente.

SELECT NAME FROM localdb MINUS SELECT NAME from remotedb@dblink

Esto es tirar un error ORA-12704. Entiendo que esto garantiza algún tipo de conversión o un entorno NLS.

¿Qué debo probar la próxima?

¿Fue útil?

Solución

Las dos columnas name se almacenan en diferentes conjuntos de caracteres. Esto podría ser debido a sus definiciones de tipo, o podría ser debido a que las dos bases de datos están utilizando diferentes conjuntos de caracteres.

podría ser capaz de evitar esto mediante la conversión de forma explícita el campo de la base de datos remota al juego de caracteres de la local. Prueba esto:

SELECT NAME FROM localdb MINUS SELECT TO_CHAR(NAME) from remotedb@dblink

Otros consejos

Se cose los tipos de columna de nombre en esos 2 mesas son diferentes.

Asegúrese de que la columna NAME de la tabla remotedb es exactamente el mismo tipo como el nombre en la tabla LocalDB. Es obligatorio cuando se utiliza un operador menos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top