Urgente: error en proc almacenado

06/06/2004 - 13:40 por Asier | Informe spam
Hola grupo,

Tengo el siguiente proc almacenado (lee los primera 20 registros de la tabla
y devuelve el codigo del ultimo):

CREATE PROCEDURE spCiasLeer20
@CodCIA varchar(3) OUTPUT
AS
select top 20 * from CIAS where CodCIA >@CodCIA
SELECT @CodCIA=MAX(CodCIA) FROM (select top 20 * from CIAS where CodCIA

@CodCIA order by codcia) as n


return @CodCIA
GO

La comprobación de sintaxis es correcta, pero al ejecutar desde el
analizador de consultas de esta manera:

spciasleer20 'kk'

me da el siguiente error:


(20 filas afectadas)

Servidor: mensaje 245, nivel 16, estado 1, procedimiento spCiasLeer20, línea
7
Error de sintaxis al convertir el valor varchar '4D ' para una columna de
tipo de datos int.

comentaros que todos los campos de la tabla son de tipo Varchar
¿que esta mal?

Gracias por vuestra ayuda,

Asier
 

Leer las respuestas

#1 Juan
06/06/2004 - 16:12 | Informe spam
Creo que el problema está en que la función MAX sirve para
tipos numéricos. Parece que quieres hacer paginación. Para
ello te recomiendo agregar un campo bigint autoincrement
que numere los registros de forma automática y pasarías
como parámetro el ID que necesites. Seguro que el problema
radica en el uso del tipo varchar como índice de los
registros.

Eso podría ser una solución :)

Suerte


Hola grupo,

Tengo el siguiente proc almacenado (lee los primera 20


registros de la tabla
y devuelve el codigo del ultimo):

CREATE PROCEDURE spCiasLeer20
@CodCIA varchar(3) OUTPUT
AS
select top 20 * from CIAS where CodCIA >@CodCIA
SELECT @CodCIA=MAX(CodCIA) FROM (select top 20 * from


CIAS where CodCIA
@CodCIA order by codcia) as n


return @CodCIA
GO

La comprobación de sintaxis es correcta, pero al ejecutar


desde el
analizador de consultas de esta manera:

spciasleer20 'kk'

me da el siguiente error:


(20 filas afectadas)

Servidor: mensaje 245, nivel 16, estado 1, procedimiento


spCiasLeer20, línea
7
Error de sintaxis al convertir el valor varchar '4D '


para una columna de
tipo de datos int.

comentaros que todos los campos de la tabla son de tipo


Varchar
¿que esta mal?

Gracias por vuestra ayuda,

Asier


.

Preguntas similares