MySQL no cuenta con una función para ejecutar algún comando del Sistema Operativo, pero se puede hacer con una implementacion de UDF, lo único que necesitamos hacer en Windows es mover la librería lib_mysqludf_sys.dll (en linux: lib_mysqludf_sys.so) al directorio de MYSQL\lib\plugin, y crear la función externa de la siguiente manera:
CREATE FUNCTION sys_exec RETURNS integer SONAME 'lib_mysqludf_sys.dll';
Ahora ya podemos utilizar la función:
SELECT sys_exec("mkdir folder");
Creará un folder en el directorio de data de MySQL.
La librería se puede descargar de : https://drive.google.com/folderview?id=0B1eEHBrSu7acYnNkSVR3cEp5ejg&usp=sharing.
miércoles, 16 de julio de 2014
viernes, 11 de julio de 2014
Crear Folder en SQL Server
Podemos crear un folder con OLE Automation, de la siguiente manera:
DECLARE @OLEresult INT
DECLARE @OLEfilesytemobject INT
DECLARE @OLEfolder INT
DECLARE @OLEsource VARCHAR(255)
DECLARE @OLEdescription VARCHAR(255)
DECLARE @newfolder VARCHAR(255)
SET @newfolder = 'C:\Backups\New_Folder'
EXEC @OLEresult=sp_OACreate 'Scripting.FileSystemObject', @OLEfilesytemobject OUT
IF @OLEresult <> 0 BEGIN
EXEC sp_OAGetErrorInfo @OLEfilesytemobject
RETURN
END
EXEC @OLEresult=sp_OAMethod @OLEfilesytemobject, 'FolderExists', @OLEfolder OUT, @newfolder
IF @OLEfolder=0 BEGIN
EXEC @OLEresult=sp_OAMethod @OLEfilesytemobject, 'CreateFolder', @OLEfolder OUT, @newfolder
END
IF @OLEresult <> 0 BEGIN
EXEC sp_OAGetErrorInfo @OLEfilesytemobject, @OLEsource OUT, @OLEdescription OUT
SELECT @OLEdescription='Could not create folder: ' + @OLEdescription
RAISERROR (@OLEdescription, 16, 1)
END
EXECUTE @OLEResult = sp_OADestroy @OLEfilesytemobject
DECLARE @OLEresult INT
DECLARE @OLEfilesytemobject INT
DECLARE @OLEfolder INT
DECLARE @OLEsource VARCHAR(255)
DECLARE @OLEdescription VARCHAR(255)
DECLARE @newfolder VARCHAR(255)
SET @newfolder = 'C:\Backups\New_Folder'
EXEC @OLEresult=sp_OACreate 'Scripting.FileSystemObject', @OLEfilesytemobject OUT
IF @OLEresult <> 0 BEGIN
EXEC sp_OAGetErrorInfo @OLEfilesytemobject
RETURN
END
EXEC @OLEresult=sp_OAMethod @OLEfilesytemobject, 'FolderExists', @OLEfolder OUT, @newfolder
IF @OLEfolder=0 BEGIN
EXEC @OLEresult=sp_OAMethod @OLEfilesytemobject, 'CreateFolder', @OLEfolder OUT, @newfolder
END
IF @OLEresult <> 0 BEGIN
EXEC sp_OAGetErrorInfo @OLEfilesytemobject, @OLEsource OUT, @OLEdescription OUT
SELECT @OLEdescription='Could not create folder: ' + @OLEdescription
RAISERROR (@OLEdescription, 16, 1)
END
EXECUTE @OLEResult = sp_OADestroy @OLEfilesytemobject
lunes, 7 de julio de 2014
Consumir RESTFul en SQL Server
Primero tenemos que activar Ole Automation Procedures con las siguientes lineas:
-- HABILITAR Ole Automation Procedures
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
Después creamos un objeto MSXML2.XMLHTTP al que se le asigna una URL y un método GET, de la siguiente manera:
DECLARE @Object INT
DECLARE @ResponseText VARCHAR(255)
DECLARE @url VARCHAR(MAX)
SET @url = 'http://freegeoip.net/json/189.158.46.223'
EXEC sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
EXEC sp_OAMethod @Object, 'open', NULL, 'get', @url, 'false'
EXEC sp_OAMethod @Object, 'send'
EXEC sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
SELECT @ResponseText AS RESPONSE
EXEC sp_OADestroy @Object
-- HABILITAR Ole Automation Procedures
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
Después creamos un objeto MSXML2.XMLHTTP al que se le asigna una URL y un método GET, de la siguiente manera:
DECLARE @Object INT
DECLARE @ResponseText VARCHAR(255)
DECLARE @url VARCHAR(MAX)
SET @url = 'http://freegeoip.net/json/189.158.46.223'
EXEC sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
EXEC sp_OAMethod @Object, 'open', NULL, 'get', @url, 'false'
EXEC sp_OAMethod @Object, 'send'
EXEC sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
SELECT @ResponseText AS RESPONSE
EXEC sp_OADestroy @Object
Suscribirse a:
Entradas (Atom)