En este grupo En todos

Foro de SQL Server



Consulta error collation conflict for equal to operation

Escrito por Alejandra
el 20/05/2006

Hola, estoy ralizando una consulta desde un sqlserver 2000 con datos que traigo de un oracle (por medio de una consulta) y una tabla del sqlserver
Arroja el siguiente error
cannot resolve collation conflict for equal to operation
la consulta es la siguiente
select
usuario, equipo,expiry,status
from openquery(equiposviejos,'select username,equipo, expiry,status
from dba_users, v$instance')
where username in
(select username from dbo. Usuarios
where machine='JUANCHO' and db='XX23')

A quien me pueda ayudar muchas gracias 

Monica Rivera
Washington, Estados ...
Escrito por Monica Rivera
el 24/05/2006

El problema es que los dos db tienen diferentes collations. Puedes resolver esto de dos maneras.

1. Puedes forzar el collation de SQL server al mismo de Oracle:
select * from <sqlserver table> collation <collation de oracle>

2. Puedes generar tu OPENQUERY como dynamic SQL usando un cursor para el user name.

Enviame un email si necesitas mas informacion.

Escrito por Miguel Nuncio
el 19/07/2006

El error es en esta instruccion:

Select * from view_cxc_pag
inner join ot_poliza p on p. No_orden = view_cxc_pag. No_orden and p. Serie = 1
where view_cxc_pag. Tipo <= 10 
and view_cxc_pag. No_orden in ( select iditem from dbo. Subgrupos(11,1) where gpoid=0) 
and vig_de between '07/19/2006' and '08/19/2006'
order by  vig_de


Yo estuve checando y se que es en el " in " pero no se como corregirlo.

Escrito por Alejandra
el 24/07/2006
Muchas Gracias. Quedó solucionado
José Francisco Rico Moreno
Baja California, Méx...
Escrito por José Francisco Rico Moreno
el 27/02/2007

A mi me aparece pero en una consulta super sencilla, entre 2 tablas..

Como puedo saber que collation es el que se está usando?

Escrito por Omar Castillo
el 23/03/2007

en el Enterprise manager en el diseño la tabla a nivel a nivel de campo esta que tipo de collation tiene y además   lo puedes cambiar o regresar al default

Escrito por Carlitos
el 09/05/2007

Hice un Restore de una DB en un servidor Prototipo, de la información de un BU de un Servidor de Producción, ambos usan el mismo collation, y son de la misma versión MSSQL server 2000, aun así me aparace el error Error DB 446: collation conflict for equal to operation. Gracias.

Escrito por Omar Castillo
el 12/05/2007

Aparte del collation de las Base de datos existe uno por tabla el cual pudes revisa en el diseño de la estas, se supone que usa el de al base de datos pero se le puede cambiar a una tabla especifica, siempre en el diseño de la tabla de pude cambier esta valor

Escrito por Carlitos
el 14/05/2007

Muchas Gracias, ya encontré el Error, el Default Server Collation, era diferente del que estaba definido en el restore, pero de eso no me dí cuenta, hasta que chequé la master DB,

Gracias de Nuevo. 

Edwin Reyes
Republica Dominicana...
Escrito por Edwin Reyes
el 30/05/2007

Hola,

Solo tienes que entrar al Disign de la tabla a traves del Enterprise Manager y verificar el COLLATION de la tabla, y ponerle el Default, o ponerlo igual que el de las demas tablas de la base de datos, puedes crear un back-up de la tabla y volver a crear la original con el COLLATION correcto y volver a poner tus datos en la tabla original desde el backup que habias sacado.

 Yo lo hice asi, y eso resolvio mi problema


Pedro
México
Escrito por Pedro
el 06/07/2007

Gracias, me sirvio esto

Pablo Uribe
Santiago, Chile
Escrito por Pablo Uribe
el 25/01/2008
WHERE tabla1. Collation1Col COLLATE DATABASE_DEFAULT
= tabla2. Collation2Col COLLATE DATABASE_DEFAULT ***************** xorixo! www.puribe.cl
Escrito por Max Trebor
el 30/05/2008
Me funcionó Perfecto con lo del COLLATE, va mi implementación:
 SELECT Op. OpLogo
 FROM MS_Gerencia gr
 ,afOperadores op
 WHERE gr. CveGerencia = @CveGerencia
 --//AQUI LA SOLUCIÓN
 AND OP. CveGerencia COLLATE DATABASE_DEFAULT = gr. CveGerencia COLLATE DATABASE_DEFAULT
 AND gr. Status = 1
 ORDER BY Op. OpNombre
Gracias
Max Trebor
"
WHERE tabla1. Collation1Col COLLATE DATABASE_DEFAULT
= tabla2. Collation2Col COLLATE DATABASE_DEFAULT
 
 
*****************
xorixo!
www.puribe.cl
"
por Pablo Uribe (Enero 2008)