valor stored salida retornar procedimientos procedimiento parametros para mostrar fecha entrada ejecutar devolver detener desde datos con almacenados almacenado sql-server ftp

sql-server - stored - procedimientos almacenados sql server desde java



¿Cuál es la mejor práctica para FTP de un procedimiento almacenado de SQL Server 2005? (4)

Si está ejecutando SQL 2005, puede hacerlo en un ensamblado de integración CLR y usar las clases FTP en el espacio de nombres System.Net para crear un cliente FTP simple.

Se beneficiaría de poder atrapar y manejar excepciones y reducir el riesgo de seguridad de tener que usar xp_cmdshell.

Solo algunos pensamientos.

¿Cuál es el mejor método para ejecutar comandos FTP desde un procedimiento almacenado de SQL Server? actualmente usamos algo como esto:

EXEC master..xp_cmdshell ''ftp -n -s:d:/ftp/ftpscript.xmt 172.1.1.1''

El problema es que el comando parece tener éxito incluso si el FTP terminó en error. Además, el uso de xp_cmdshell requiere permisos especiales y puede dejar espacio para problemas de seguridad.


Si necesita hacer FTP desde la base de datos, entonces iría con un ensamblado .NET como sugirió Kevin. Eso proporcionaría el mayor control sobre el proceso, además de que usted podría registrar mensajes de error significativos en una tabla para informar.

Otra opción sería escribir una aplicación de línea de comando que lea la base de datos para que se ejecuten los comandos. A continuación, puede definir una tarea programada para llamar a esa aplicación de línea de comandos cada minutos o el período de sondeo necesario. Eso sería más seguro que habilitar la compatibilidad con CLR en el servidor de la base de datos.


Otra posibilidad es usar DTS o servicios de integración (DTS para SQL Server 7 o 2000, SSIS para 2005 o superior). Ambos son de Microsoft, se incluyen en la instalación del servidor Sql (al menos en la edición estándar) y tienen una tarea FTP y están diseñados para trabajos de importación / exportación desde el servidor Sql.


Kev publicó un ejemplo aquí que implementa su sugerencia de "hacer esto en un ensamblado de integración CLR y usar las clases FTP en el espacio de nombres System.Net para construir un cliente FTP simple".