Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Error converting data type varchar to numeric.

Estas en el tema de Error converting data type varchar to numeric. en el foro de SQL Server en Foros del Web. Amigos del foro. Tengo un inconveniente al ejecutar un SP, ya realice pruebas en una tabla pequeña y funciona bien, pero al ejecutarla en la ...
  #1 (permalink)  
Antiguo 21/10/2014, 09:17
 
Fecha de Ingreso: abril-2008
Mensajes: 112
Antigüedad: 16 años
Puntos: 0
Error converting data type varchar to numeric.

Amigos del foro.

Tengo un inconveniente al ejecutar un SP, ya realice pruebas en una tabla pequeña y funciona bien, pero al ejecutarla en la tabla de mi aplicación obtengo el siguietne mensaje:

"Error converting data type varchar to numeric."

Mi tabla es:
Código SQL:
Ver original
  1. CREATE TABLE [dbo].[CAJAS](
  2.     [C_CODIGO] [nvarchar](15) NOT NULL,
  3.     [CLI_CODIGO] [nvarchar](15) NOT NULL,
  4.     [C_NUMERO] [SMALLINT] IDENTITY(1,1) NOT NULL,
  5.     [CAJA_CONTENIDO] [nvarchar](3000) NULL,
  6.     [FECHA_EMISION] [datetime] NOT NULL,
  7.     [FECHA_CADUCIDAD] [datetime] NULL,
  8.     [FECHA_ALTA] [datetime] NULL,
  9.     [FECHA_BAJA] [datetime] NULL,
  10.     [ALTA_POR] [nvarchar](50) NULL,
  11.     [BAJA_POR] [nvarchar](50) NULL,
  12.     [UBI_COORD1] [nvarchar](15) NULL,
  13.     [UBI_COORD2] [nvarchar](15) NULL,
  14.     [UBI_COORD3] [nvarchar](15) NULL,
  15.     [UBI_COORD4] [nvarchar](15) NULL,
  16.     [UBI_COORD5] [nvarchar](15) NULL,
  17.     [UBI_COORD6] [nvarchar](15) NULL,
  18.     [UBI_COORD7] [nvarchar](15) NULL,
  19.     [ESTADO] [nvarchar](15) NULL,
  20.     [CODIGO_TAMANO] [NUMERIC](18, 0) NULL,
  21.     [SEDE] [nvarchar](10) NULL,
  22.     [OBSERVACION] [nvarchar](350) NULL,
  23.     [FECHA_ENVIO_CLIENTE] [datetime] NULL,
  24.     [FECHA_DEVOLUCION] [datetime] NULL,
  25.     [DIAS_PRESTAMO] [NUMERIC](18, 0) NULL,
  26.  CONSTRAINT [PK__CAJAS__0380EB64164452B1] PRIMARY KEY CLUSTERED
  27. (
  28.     [C_CODIGO] ASC,
  29.     [CLI_CODIGO] ASC,
  30.     [C_NUMERO] ASC
  31. )

y mi SP ES:
Código SQL:
Ver original
  1. CREATE PROCEDURE [dbo].[SP_INSERTCAJA2]
  2.     @C_CODIGO NVARCHAR(15),
  3.     @CLI_CODIGO NVARCHAR(15),
  4.     @C_NUMERO SMALLINT,
  5.     @CAJA_CONTENIDO NVARCHAR(3000),
  6.     @FECHA_EMISION DATETIME,
  7.     @FECHA_CADUCIDAD DATETIME,
  8.     @FECHA_ALTA DATETIME,
  9.     @ALTA_POR NVARCHAR(50),
  10.     @UBI_COORD1 NVARCHAR(15),
  11.     @UBI_COORD2 NVARCHAR(15),
  12.     @UBI_COORD3 NVARCHAR(15),
  13.     @UBI_COORD4 NVARCHAR(15),
  14.     @UBI_COORD5 NVARCHAR(15),
  15.     @UBI_COORD6 NVARCHAR(15),
  16.     @UBI_COORD7 NVARCHAR(15),
  17.     @ESTADO NVARCHAR(15),
  18.     @CODIGO_TAMANO NUMERIC(18,0),
  19.     @SEDE NVARCHAR(10),
  20.     @OBSERVACION NVARCHAR(350)
  21. AS
  22. BEGIN
  23.         SELECT @C_NUMERO = COUNT(*) + 1 FROM CAJAS
  24.         WHERE C_CODIGO = @C_CODIGO
  25.         AND CLI_CODIGO = @CLI_CODIGO;
  26.  
  27.        
  28.     INSERT INTO CAJAS
  29.         (
  30.         C_CODIGO, CLI_CODIGO, C_NUMERO, CAJA_CONTENIDO, FECHA_EMISION, FECHA_CADUCIDAD,
  31.         FECHA_ALTA, ALTA_POR, UBI_COORD1, UBI_COORD2, UBI_COORD3,
  32.         UBI_COORD4, UBI_COORD5, UBI_COORD6, UBI_COORD7, ESTADO, CODIGO_TAMANO,
  33.         SEDE, OBSERVACION
  34.         )
  35.         VALUES
  36.         (
  37.         @C_CODIGO, @CLI_CODIGO, @C_NUMERO, @CAJA_CONTENIDO, @FECHA_EMISION, @FECHA_CADUCIDAD,
  38.         @FECHA_ALTA, @ALTA_POR, @UBI_COORD1, @UBI_COORD2, @UBI_COORD3,
  39.         @UBI_COORD4, @UBI_COORD5, @UBI_COORD6, @UBI_COORD7, @ESTADO, @CODIGO_TAMANO,
  40.         @SEDE, @OBSERVACION
  41.         )
  42. END

lo que hago es generar un secuencial en base un count, asi podre obtener un numero consecutivo [C_NUMERO] en base a los campos [C_CODIGO] y [CLI_CODIGO]

Asi podria obtener algo como lo que necesito:
Código SQL:
Ver original
  1. C_CODIGO, CLI_CODIGO, CNUMERO, CAJA_CONTENIDO ........
  2. XXX, 100, 1, FACTURAS
  3. XXX, 100, 2, FACTURAS
  4. XXX, 100, 3, CONTRATOS
  5. YYY,  101, 1, FACTURAS
  6. YYY,  101, 2, RETENCIONES...
ETC
ETC

Alguien por favor podría decirme por que puede suceder este error?
Le doy vueltas y vueltas y no entiendo por que, debería ya funcionar..


Saludos y gracias

Última edición por gnzsoloyo; 21/10/2014 a las 09:24
  #2 (permalink)  
Antiguo 21/10/2014, 09:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error converting data type varchar to numeric.

un ejemplo de como estas llamando al procedure y de que parametros envias ayudaria mucho.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 21/10/2014, 09:50
 
Fecha de Ingreso: abril-2008
Mensajes: 112
Antigüedad: 16 años
Puntos: 0
Respuesta: Error converting data type varchar to numeric.

Gracias por responder,

Encontre el primer inconveniente, es que entre varias pruebas que he hecho, no me percaté de que un campo tiene propiedad autoincrement (Identity en SQL server), ya modifiqué eso, estoy llamandolo de la siguiente manera:

EXEC [dbo].[SP_INSERTCAJA2]
'XXX', '100', 1, 'FACTURAS', '2014-10-12 00:00:00.000', '2014-10-12 00:00:00.000', '2014-10-13 10:47:55.793', '', '', '', '', '', '', '', '', '', '', '', ''

Como es de prueba estoy mandando esos campos en vacío (por el momento), pero ahora me aparece un error referente al formato de fechas:
"Error converting data type varchar to numeric."

Estoy viendo cual podría ser el problema... pero si tienes alguna sugerencia te estaría muy agradecido.

Saludos
  #4 (permalink)  
Antiguo 21/10/2014, 10:00
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error converting data type varchar to numeric.

no puedes mandar '' a un tipo int o numeric sin recibir error deberias de mandar 0 o NULL de lo contrario te va a seguir sin funcionar

Prueba con esto:

Código SQL:
Ver original
  1. EXEC [dbo].[SP_INSERTCAJA2]
  2. 'XXX', '100', 1, 'FACTURAS', '2014-10-12 00:00:00.000', '2014-10-12 00:00:00.000', '2014-10-13 10:47:55.793', '', '', '', '', '', '', '', '', '', 0, '', ''
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 21/10/2014, 10:09
 
Fecha de Ingreso: abril-2008
Mensajes: 112
Antigüedad: 16 años
Puntos: 0
Respuesta: Error converting data type varchar to numeric.

Gracias..
ya con tantos campos me pierdo, me parece que ya esta funcionando y secuenciando como deberia.
  #6 (permalink)  
Antiguo 21/10/2014, 12:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error converting data type varchar to numeric.

Es como enviar un NUMERICO disfrazado de CHAR, digo, estamos en épocas de Halloween, pero no es para tanto....
__________________
MCTS Isaias Islas

Etiquetas: data, select, tabla, type, varchar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.