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

Devolver resultado de la ejecución de query por bat.

Estas en el tema de Devolver resultado de la ejecución de query por bat. en el foro de SQL Server en Foros del Web. Tengo un archivo "@P1CC060.bat" en mi servidor, este bat lo ejecuta un HOST todas las mañanas a las 8:00 a.m. El bat sólo contiene esta ...
  #1 (permalink)  
Antiguo 29/11/2012, 12:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 19 años, 2 meses
Puntos: 0
Devolver resultado de la ejecución de query por bat.

Tengo un archivo "@P1CC060.bat" en mi servidor, este bat lo ejecuta un HOST todas las mañanas a las 8:00 a.m.

El bat sólo contiene esta línea de código:
f:\BCP\SalesServices\Bat\osql -S PSQL2K8D05 -E -Q"exec OCS.dbo.usp_StartJobAndWait 'job_SSIS_Carga_Lista',300,1" -b

--Vi en propiedades que ese archivo "osql" es un ISQL sql query tool--

Mi duda es:

Es posible retornar a host el resultado de... si el job no se ejecutó correctamente o salió error?


Saludos.
  #2 (permalink)  
Antiguo 29/11/2012, 12:14
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Devolver resultado de la ejecución de query por bat.

Si, hay una serie de SP dentro de MSDB, que es donde se guardan los job's, para saber su status, aunque seria mucho mas conveniente, modificar el JOB y que este notificara si se ejecuto o no.
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 29/11/2012, 12:54
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Respuesta: Devolver resultado de la ejecución de query por bat.

Concluyo de tu pregunta que el procedimiento OCS.dbo.usp_StartJobAndWait ejecuta un Job, o más bien- inicia su ejecución.
Para devolver el resultado del Batch y del procedimiento- añade al Batch el nombre del archivo que guarde la salida:
Código HTML:
Ver original
  1. f:\BCP\SalesServices\Bat\osql -S PSQL2K8D05 -E -Q"exec OCS.dbo.usp_StartJobAndWait 'job_SSIS_Carga_Lista',300,1" -b > f:\BCP\SalesServices\MiArchivo.txt
El Job puede ser configurado tal que mande la salida a un archivo textual en la misma manera.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #4 (permalink)  
Antiguo 29/11/2012, 13:24
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Devolver resultado de la ejecución de query por bat.

Ok muchas gracias iislas por la respuesta.

Unas dudas puntuales sobre el último parámetro de esa línea "-b":

Según lo que he leído de isql ese parámetro significa que en caso la sentencia falle y genere un "SQL Server error message" con valor mayor a 10, el "DOS ERRORLEVEL" será igual a 1 en otros casos será 0.

-------------------------------------
-b

Specifies that isql exits and returns a DOS ERRORLEVEL value when an error occurs. The value returned to the DOS ERRORLEVEL variable is 1 when the SQL Server error message has a severity of 10 or greater; otherwise, the value returned is 0. MS-DOS batch files can test the value of DOS ERRORLEVEL and handle the error appropriately.

Fuente : http://www.robvanderwoude.com/errorlevel.php
----------------------------------------

Las dudas:

1.Es posible que host pueda capturar el valor de "DOS ERRORLEVEL"?
2.En qué condiciones el "SQL Server error message" obtiene un valor mayor a 10?

Muchas gracias.
  #5 (permalink)  
Antiguo 29/11/2012, 13:33
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Devolver resultado de la ejecución de query por bat.

Cita:
Iniciado por GeriReshef Ver Mensaje
Concluyo de tu pregunta que el procedimiento OCS.dbo.usp_StartJobAndWait ejecuta un Job, o más bien- inicia su ejecución.
Para devolver el resultado del Batch y del procedimiento- añade al Batch el nombre del archivo que guarde la salida:
Código HTML:
Ver original
  1. f:\BCP\SalesServices\Bat\osql -S PSQL2K8D05 -E -Q"exec OCS.dbo.usp_StartJobAndWait 'job_SSIS_Carga_Lista',300,1" -b > f:\BCP\SalesServices\MiArchivo.txt
El Job puede ser configurado tal que mande la salida a un archivo textual en la misma manera.
Gracias por la respuesta GeriReshef, si es cierto que el procedimiento ejecuta el job indicado y valida si se ejecuto bien o no, por ejemplo encontré esta línea de código:

EXEC @intSTARTJOBRESULT = msdb..sp_start_job @nvcJOB

pero necesito que por parte de host muestre una alerta de si se canceló el job por algún error. Un log no creo que me sirva para mostrar de manera práctica el resultado del job para el lado de HOST.

Última edición por sirguille; 29/11/2012 a las 13:43

Etiquetas: devolver, query, sql, resultados
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 12:29.