Conflicto con el operador equal to.

16/02/2004 - 18:12 por Jose | Informe spam
Hola, muchas gracias por leer mi exposición, ahora mismo
paso a comentar mi problema.
No se cual es la regla de oro que me estoy saltando en la
creación de esta vista (este es un resumen, pq el problema
está en la subconsulta):

CREATE VIEW VPedidos
AS
SELECT p.NUMPED, p.ESTADO
FROM DBExterna.dbo.PEDCAB p
WHERE p.numped not in (select tl.numped from TablaLocal tl)

El problema que devuelve al ejecutarla es:

"No se puede resolver el conflicto de intercalación para
el operador equal to."

La cuestión es que los dos campos son del mismo tipo:
varchar(14)
Si cambio la subconsulta por un valor exacto, funciona
correctamente.
Si lo cambio por cualquier otro campo común, falla, luego
debe de ser de las tablas.
Con la sentencia EXISTS p.numped = tl.numped sigue dando
el mismo error.
¿Cual es ese error tran grande que tengo ante las narices
y no veo?
¿Anda que si es un toro?.

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 ulises
16/02/2004 - 18:29 | Informe spam
El problema es que estás tratando de comparar columnas que
tienen una intercalación diferente (sea nivel de tabla o
de columna), si obtienes un script de las tablas revisa
que intercalación maneja cada una de ellas), luego puedes
cambiarlas o indicar en forma explicita la intercalación
en la sentencia sql, si tienes el BOL en inglés revisa el
término collation.

Saludos,
Ulises

Hola, muchas gracias por leer mi exposición, ahora mismo
paso a comentar mi problema.
No se cual es la regla de oro que me estoy saltando en la
creación de esta vista (este es un resumen, pq el


problema
está en la subconsulta):

CREATE VIEW VPedidos
AS
SELECT p.NUMPED, p.ESTADO
FROM DBExterna.dbo.PEDCAB p
WHERE p.numped not in (select tl.numped from TablaLocal


tl)

El problema que devuelve al ejecutarla es:

"No se puede resolver el conflicto de intercalación para
el operador equal to."

La cuestión es que los dos campos son del mismo tipo:
varchar(14)
Si cambio la subconsulta por un valor exacto, funciona
correctamente.
Si lo cambio por cualquier otro campo común, falla, luego
debe de ser de las tablas.
Con la sentencia EXISTS p.numped = tl.numped sigue dando
el mismo error.
¿Cual es ese error tran grande que tengo ante las narices
y no veo?
¿Anda que si es un toro?.

Muchas gracias.
.

Respuesta Responder a este mensaje
#2 Fernando España
16/02/2004 - 18:35 | Informe spam
revisa en el bol lo que se refiere a collation



Fernando España
Gerente Informatica
Alta Tecnologia en Informatica S.A.
www.atisa.com.gt
7a. calle 4-34 Zona 10
Guatemala Centro America
PBX: (502) 3620005

Email:

****************************************

"Jose" escribió en el mensaje
news:1170401c3f4b0$08315ca0$
Hola, muchas gracias por leer mi exposición, ahora mismo
paso a comentar mi problema.
No se cual es la regla de oro que me estoy saltando en la
creación de esta vista (este es un resumen, pq el problema
está en la subconsulta):

CREATE VIEW VPedidos
AS
SELECT p.NUMPED, p.ESTADO
FROM DBExterna.dbo.PEDCAB p
WHERE p.numped not in (select tl.numped from TablaLocal tl)

El problema que devuelve al ejecutarla es:

"No se puede resolver el conflicto de intercalación para
el operador equal to."

La cuestión es que los dos campos son del mismo tipo:
varchar(14)
Si cambio la subconsulta por un valor exacto, funciona
correctamente.
Si lo cambio por cualquier otro campo común, falla, luego
debe de ser de las tablas.
Con la sentencia EXISTS p.numped = tl.numped sigue dando
el mismo error.
¿Cual es ese error tran grande que tengo ante las narices
y no veo?
¿Anda que si es un toro?.

Muchas gracias.
Respuesta Responder a este mensaje
#3 Anonimo
16/02/2004 - 18:52 | Informe spam
El databasepropertyex me devuelve que el collation es
diferente en las 2:
la externa es SQL_Latin1_General_CP850_CI_AS
la local es SQL_Latin1_General_CP850_BIN
Gracias, acabas de meterme en otro fregao con el COLLATION
ese, ES BROMA, bueno me voy a leer el manual que tengo
para rato.

Muchas gracias, de verdad.

revisa en el bol lo que se refiere a collation



Fernando España
Gerente Informatica
Alta Tecnologia en Informatica S.A.
www.atisa.com.gt
7a. calle 4-34 Zona 10
Guatemala Centro America
PBX: (502) 3620005

Email:

****************************************

"Jose" escribió en el mensaje
news:1170401c3f4b0$08315ca0$
Hola, muchas gracias por leer mi exposición, ahora mismo
paso a comentar mi problema.
No se cual es la regla de oro que me estoy saltando en la
creación de esta vista (este es un resumen, pq el problema
está en la subconsulta):

CREATE VIEW VPedidos
AS
SELECT p.NUMPED, p.ESTADO
FROM DBExterna.dbo.PEDCAB p
WHERE p.numped not in (select tl.numped from TablaLocal


tl)

El problema que devuelve al ejecutarla es:

"No se puede resolver el conflicto de intercalación para
el operador equal to."

La cuestión es que los dos campos son del mismo tipo:
varchar(14)
Si cambio la subconsulta por un valor exacto, funciona
correctamente.
Si lo cambio por cualquier otro campo común, falla, luego
debe de ser de las tablas.
Con la sentencia EXISTS p.numped = tl.numped sigue dando
el mismo error.
¿Cual es ese error tran grande que tengo ante las narices
y no veo?
¿Anda que si es un toro?.

Muchas gracias.


.

Respuesta Responder a este mensaje
#4 Jose
16/02/2004 - 19:12 | Informe spam
El databasepropertyex me devuelve que el collation es
diferente en las 2:
la externa es SQL_Latin1_General_CP850_CI_AS
la local es SQL_Latin1_General_CP850_BIN

Si alguien me dijera por donde empezar para arreglarlo, se
lo agradecería, es lo malo de ser autodidacta a la fuerza.

Hola, muchas gracias por leer mi exposición, ahora mismo
paso a comentar mi problema.
No se cual es la regla de oro que me estoy saltando en la
creación de esta vista (este es un resumen, pq el


problema
está en la subconsulta):

CREATE VIEW VPedidos
AS
SELECT p.NUMPED, p.ESTADO
FROM DBExterna.dbo.PEDCAB p
WHERE p.numped not in (select tl.numped from TablaLocal


tl)

El problema que devuelve al ejecutarla es:

"No se puede resolver el conflicto de intercalación para
el operador equal to."

La cuestión es que los dos campos son del mismo tipo:
varchar(14)
Si cambio la subconsulta por un valor exacto, funciona
correctamente.
Si lo cambio por cualquier otro campo común, falla, luego
debe de ser de las tablas.
Con la sentencia EXISTS p.numped = tl.numped sigue dando
el mismo error.
¿Cual es ese error tran grande que tengo ante las narices
y no veo?
¿Anda que si es un toro?.

Muchas gracias.
.

Respuesta Responder a este mensaje
#5 ulises
16/02/2004 - 19:34 | Informe spam
Uno de tus opciones es cambiar el COLLATE del campo o de
la tabla en mención usando p.e.:

ALTER TABLE tabla
ALTER COLUMN columna
varchar(10)COLLATE SQL_Latin1_General_CP850_CI_AS NOT NULL

la otra es utilizar el COLLATE en el sentencia SQL de ls
siguiente forma :

SELECT columna
FROM tablaexterna
WHERE columna not in (select columna COLLATE
SQL_Latin1_General_CP850_CI_AS from tablalocal )

Saludos,
Ulises


El databasepropertyex me devuelve que el collation es
diferente en las 2:
la externa es SQL_Latin1_General_CP850_CI_AS
la local es SQL_Latin1_General_CP850_BIN

Si alguien me dijera por donde empezar para arreglarlo,


se
lo agradecería, es lo malo de ser autodidacta a la fuerza.

Hola, muchas gracias por leer mi exposición, ahora mismo
paso a comentar mi problema.
No se cual es la regla de oro que me estoy saltando en




la
creación de esta vista (este es un resumen, pq el


problema
está en la subconsulta):

CREATE VIEW VPedidos
AS
SELECT p.NUMPED, p.ESTADO
FROM DBExterna.dbo.PEDCAB p
WHERE p.numped not in (select tl.numped from TablaLocal


tl)

El problema que devuelve al ejecutarla es:

"No se puede resolver el conflicto de intercalación para
el operador equal to."

La cuestión es que los dos campos son del mismo tipo:
varchar(14)
Si cambio la subconsulta por un valor exacto, funciona
correctamente.
Si lo cambio por cualquier otro campo común, falla,




luego
debe de ser de las tablas.
Con la sentencia EXISTS p.numped = tl.numped sigue dando
el mismo error.
¿Cual es ese error tran grande que tengo ante las




narices
y no veo?
¿Anda que si es un toro?.

Muchas gracias.
.



.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida