Desbordamiento aritmetico...

12/02/2008 - 17:37 por Fernando Fernandez Garcia | Informe spam
Hola...

Mi consulta es la siguiente:
Sobre SQL 2000 tengo una tabla a la cual ejecuto un procedimiento almacenado
para que me localize una venta por sucursal N(3), puesto N(3) y factura I(4)
EL nro de factura puede tener hasta 7 digitos. El problema que me ocurre es
q cuando ejecuto el procedimiento para ciertas sucursales me devuelve el
siguiente error:

Servidor: mensaje 8115, nivel 16, estado 8, procedimiento wc_buscaventa,
linea 9
"Error de desbordamiento aritmetico al convertir numeric al tipo de
datos numeric"

EL procedimiento wc_buscaventa es el siguiente:

CREATE PROCEDURE wc_buscaventa
@sucursal numeric(3)
@puesto numeric(3)
@nrofactura numeric(7)
AS
SELECT ... lista de campos FROM... lista de tablas ...
where nro_sucursal = @sucursal AND nropuesto = @puesto AND CAST(nfactura AS
numeric (7) = @nrofactura

en algunos casos devuelve correctamente el cursor, pero en algunos da el
error mencionado y en otros no devuelve nada (aun existiendo el registro) y
emite el error

Agradecere cualquier ayuda.
Fernando

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
12/02/2008 - 19:44 | Informe spam
Fernando Fernandez Garcia,

Pudieras postear la estructura de la tabla, me interesa ver los tipo de
datos de las columnas que participan en el predicado de la clausula "where".


AMB


"Fernando Fernandez Garcia" wrote:

Hola...

Mi consulta es la siguiente:
Sobre SQL 2000 tengo una tabla a la cual ejecuto un procedimiento almacenado
para que me localize una venta por sucursal N(3), puesto N(3) y factura I(4)
EL nro de factura puede tener hasta 7 digitos. El problema que me ocurre es
q cuando ejecuto el procedimiento para ciertas sucursales me devuelve el
siguiente error:

Servidor: mensaje 8115, nivel 16, estado 8, procedimiento wc_buscaventa,
linea 9
"Error de desbordamiento aritmetico al convertir numeric al tipo de
datos numeric"

EL procedimiento wc_buscaventa es el siguiente:

CREATE PROCEDURE wc_buscaventa
@sucursal numeric(3)
@puesto numeric(3)
@nrofactura numeric(7)
AS
SELECT ... lista de campos FROM... lista de tablas ...
where nro_sucursal = @sucursal AND nropuesto = @puesto AND CAST(nfactura AS
numeric (7) = @nrofactura

en algunos casos devuelve correctamente el cursor, pero en algunos da el
error mencionado y en otros no devuelve nada (aun existiendo el registro) y
emite el error

Agradecere cualquier ayuda.
Fernando



Respuesta Responder a este mensaje
#2 Gux (MVP)
13/02/2008 - 15:06 | Informe spam
Cuál es el tipo de datos de la columna NFACTURA que se menciona en el CAST ?

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Fernando Fernandez Garcia" wrote:

Hola...

Mi consulta es la siguiente:
Sobre SQL 2000 tengo una tabla a la cual ejecuto un procedimiento almacenado
para que me localize una venta por sucursal N(3), puesto N(3) y factura I(4)
EL nro de factura puede tener hasta 7 digitos. El problema que me ocurre es
q cuando ejecuto el procedimiento para ciertas sucursales me devuelve el
siguiente error:

Servidor: mensaje 8115, nivel 16, estado 8, procedimiento wc_buscaventa,
linea 9
"Error de desbordamiento aritmetico al convertir numeric al tipo de
datos numeric"

EL procedimiento wc_buscaventa es el siguiente:

CREATE PROCEDURE wc_buscaventa
@sucursal numeric(3)
@puesto numeric(3)
@nrofactura numeric(7)
AS
SELECT ... lista de campos FROM... lista de tablas ...
where nro_sucursal = @sucursal AND nropuesto = @puesto AND CAST(nfactura AS
numeric (7) = @nrofactura

en algunos casos devuelve correctamente el cursor, pero en algunos da el
error mencionado y en otros no devuelve nada (aun existiendo el registro) y
emite el error

Agradecere cualquier ayuda.
Fernando



Respuesta Responder a este mensaje
#3 Fernando Fernandez Garcia
14/02/2008 - 00:36 | Informe spam
El tipo de datos de nfactura es INT.
Acabo de darme cuenta q los datos historicos de mis facturas tenian mas de 7
digitos. Eso explica el error creo. Los datos no fueron introducidos por la
aplicacion sino migrados directamente. Y actualmente ese campo solo puede
tener 7 digitos como maximo.
Gracias por su interes
Fernando



"Gux (MVP)" wrote in message
news:
Cuál es el tipo de datos de la columna NFACTURA que se menciona en el CAST


?

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Fernando Fernandez Garcia" wrote:

> Hola...
>
> Mi consulta es la siguiente:
> Sobre SQL 2000 tengo una tabla a la cual ejecuto un procedimiento


almacenado
> para que me localize una venta por sucursal N(3), puesto N(3) y factura


I(4)
> EL nro de factura puede tener hasta 7 digitos. El problema que me ocurre


es
> q cuando ejecuto el procedimiento para ciertas sucursales me devuelve el
> siguiente error:
>
> Servidor: mensaje 8115, nivel 16, estado 8, procedimiento


wc_buscaventa,
> linea 9
> "Error de desbordamiento aritmetico al convertir numeric al tipo de
> datos numeric"
>
> EL procedimiento wc_buscaventa es el siguiente:
>
> CREATE PROCEDURE wc_buscaventa
> @sucursal numeric(3)
> @puesto numeric(3)
> @nrofactura numeric(7)
> AS
> SELECT ... lista de campos FROM... lista de tablas ...
> where nro_sucursal = @sucursal AND nropuesto = @puesto AND CAST(nfactura


AS
> numeric (7) = @nrofactura
>
> en algunos casos devuelve correctamente el cursor, pero en algunos da el
> error mencionado y en otros no devuelve nada (aun existiendo el


registro) y
> emite el error
>
> Agradecere cualquier ayuda.
> Fernando
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida