SQL Server - TRY CATCH No me detecta ningún select

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por David (6 intervenciones) el 30/01/2021 00:41:05
Hola comunidad.

Una consulta para manejar errores de conversión en el try catch como se declara o como se define para el el Cath tenga el error.

No me detecta ningún select que coloco en el try solo me visualiza el que hace en una tabla más no en la de las opciones del Catch.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por Isaias (4558 intervenciones) el 01/02/2021 21:54:10
¿Y si compartes tu codigo y nos dices en que versión de SQL Server estas manejando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por DAVID (6 intervenciones) el 02/02/2021 01:59:16
Buenas tardes.

Mi código es el siguiente,

Begin Try

Estoy usando el SELECT TOP 10000 ID MENSAJE , CONVERT (INT,(CAMPO61) AS CAMPO61

End try


Cuando testeo este convert el error que tengo que es que no me deja convertir una cadena de texto y números a entero y el error de mi sp continúa, el Try Catch ya me registra la consulta y el error lo guarda en la tabla, pero ese error me sigue saliendo por el convert

Como se.podria solucionar al tener una cadena a un convertir y .

Mi campo61 es el origen del error donde caen los números y caracteres .

GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por Isaias (4558 intervenciones) el 02/02/2021 20:15:24
Pues yo tengo esta prueba y funciona correctamente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
BEGIN TRY
-- Generate a divide-by-zero error
  SELECT convert(int,'1234tyy.00')
END TRY
BEGIN CATCH
  SELECT
    ERROR_NUMBER() AS ErrorNumber,
    ERROR_STATE() AS ErrorState,
    ERROR_SEVERITY() AS ErrorSeverity,
    ERROR_PROCEDURE() AS ErrorProcedure,
    ERROR_LINE() AS ErrorLine,
    ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por Isaias (4558 intervenciones) el 03/02/2021 02:56:36
En realidad el comentario de DIVIDE-BY-ZERO-ERROR, deberia hacer mención al CONVERT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por David (6 intervenciones) el 03/02/2021 04:06:46
Buenas noches

Si esa prueba la hice y sale muy bien el tema es que el error que tengo es cuando un mensaje con error en cadena de texto en un campo manda un convert, error de conversión , como se manejan esos errores en excepciones de Convert y guardarlos en una Tabla, ya hice el Try Catch pero no lo cacha ,.

Select top (100000) idmensaje convert (int,(campoque traecadena) from tablamensajes.

Al poner esa consulta es error y truena el catch agarra la consulta y me lo guarda pero no esta bien mi estructura, ya que sigue arrojando el error Convert,.

Como puedo hacer otra manera para cachar el error convert y guardarlo en una tabla de errores, ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por Isaias (4558 intervenciones) el 03/02/2021 16:24:34
¿Probaste mi prueba?, Esta, si esta cachando el error de CONVERT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por DAVID (6 intervenciones) el 03/02/2021 17:15:57
Hola si la realice y si lee el select así como guarda el error , solo que al estar en tiempo de ejecución el error sigue en consola , es el detalle que presento en la forma de estructurar la consulta.

El tipo de campo es varchar recibe cadena con números y letras y al llegar un insert con estos caracteres NTFRNTG truena el Sp

Si hace el Try y Catch que me comentas solo que sigue el error sale este mensaje en consola
INVALID LENGHT PARAMETER PASSED TO THE LEFT OR SUBSTRING FUNCTION, este es el error que intento poner en excepción pero no logro detectarlo con el try Catch o la forma de implementar para determinar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por Isaias (4558 intervenciones) el 03/02/2021 19:24:35
Hablas de una FUNCION, ¿Es el CONVERT?, yo ejecuto el query que te mande y no manda ningún mensaje de error, solo me "cacha" el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por DAVID (6 intervenciones) el 03/02/2021 19:42:08
Hola

La lógica del problema que tengo es el siguiente:

Hay una tabla que cacha los mensajes desde un app llegan los inserts , cuando cae en el campo80 ese mensaje truena el store procedure.

Cuando ve esa cadena NTFRNJT TRUENA.

ahora.

La cadena es un VARCHAR, con números y letras , pero no dejara hacer bien el catch,

El proceso del Catch Try lo hace sin problema el detalle es que aún así sigue mandando el error
(0) Rows affected
1 row affected
Msg 537 level 16 state 2 procedure cxccvvvvvvvv line 233 batch start line 22

Error converting data type varchar to float

Código que hice

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
select TOP (100000) IDMENSAJE ,CONVERT (INT,[CAMPO80]
AS [CAMPO80]
 
FROM TABLAMENSAJES
 
BEGIN CATCH
 
SELEC
 
ERRORNUMBER()
ERRORSTATE()
ERROR_MESAAGE()
ERRORNUMBER()
GETDATE()
 
--tabla donde ingresa el error
 
Insert into(errornumber,error message, errorstatw,)
 
Vales (234,3,4,677.procedureiuiu,getfate()
 
End cath

Así es como corre y hace el ciclo pero no quitar el error sigue una vez que se corte el sp así execute sp desde consola
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por Isaias (4558 intervenciones) el 04/02/2021 00:03:17
Veamos, ¿esto le genera algun mensaje de error?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DECLARE  @Mytable TABLE
(MyVarchar Varchar (20))
 
INSERT INTO @Mytable VALUES
('12345.00'),
('12345.00'),
('NTFRNJT'),
('12345.00'),
('12345.00')
 
BEGIN TRY
SELECT CONVERT(INT, MyVarchar) FROM @Mytable
END TRY
BEGIN CATCH
  SELECT
    ERROR_NUMBER() AS ErrorNumber,
    ERROR_STATE() AS ErrorState,
    ERROR_SEVERITY() AS ErrorSeverity,
    ERROR_PROCEDURE() AS ErrorProcedure,
    ERROR_LINE() AS ErrorLine,
    ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 4 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

TRY CATCH No me detecta ningún select

Publicado por DAVID (6 intervenciones) el 04/02/2021 00:29:42
Hola Isaias.

Lo implemento.asi y valido la.salida , dame oportunidad de hacer el script con.mis datos

Mando respuesta en cuanto ejecute

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar