Error en Clausula IN en Procedimiento Alm.

10/08/2007 - 10:58 por Marcel | Informe spam
Hola. Gracias a todos de antemano.
Como vereis empiezo a escribir procedimientos almacenados.
Tengo un problema al ejecutar con una clausula IN
con un dato en tabla smallint.


Tengo una tabla con el dato CTT_COMPRA_VENTA que es smallint
y una declaracion similar a esto.

DECLARE @lsCOMPRAVENTA es nvarchar(10)

if...
SET @lsCOMPRAVENTA='2,3'
else...
SET @lsCOMPRAVENTA='8,3'

Select
AND CTT_COMPRA_VENTA IN (@lsCOMPRAVENTA)

Al ejecutarlo me da este error

Mens. 245, Nivel 16, Estado 1, Línea 47
Syntax error converting the nvarchar value '2,3' to a column of data
type smallint.

¿Como se escribe en este caso el IN?

porque escrito a pelo AND CTT_COMPRA_VENTA IN (2,3) no da error
y si @lsCOMPRAVENTA tiene un solo valor SET @lsCOMPRAVENTA='2' tampoco
da error
 

Leer las respuestas

#1 Ana
10/08/2007 - 11:53 | Informe spam
Buenas manuel

Prueba a convertir el valor @lsCompraVenta (cuando lo utilices en el IN) a
smallint (utiliza el convert)


"Marcel" wrote in message
news:
Hola. Gracias a todos de antemano.
Como vereis empiezo a escribir procedimientos almacenados.
Tengo un problema al ejecutar con una clausula IN
con un dato en tabla smallint.


Tengo una tabla con el dato CTT_COMPRA_VENTA que es smallint
y una declaracion similar a esto.

DECLARE @lsCOMPRAVENTA es nvarchar(10)

if...
SET @lsCOMPRAVENTA='2,3'
else...
SET @lsCOMPRAVENTA='8,3'

Select
AND CTT_COMPRA_VENTA IN (@lsCOMPRAVENTA)

Al ejecutarlo me da este error

Mens. 245, Nivel 16, Estado 1, Línea 47
Syntax error converting the nvarchar value '2,3' to a column of data type
smallint.

¿Como se escribe en este caso el IN?

porque escrito a pelo AND CTT_COMPRA_VENTA IN (2,3) no da error
y si @lsCOMPRAVENTA tiene un solo valor SET @lsCOMPRAVENTA='2' tampoco da
error

Preguntas similares