Cuando intento ejecutar el procedimiento almacenado sp_OACreate
en la base de datos SQL azure. Me aparece el siguiente error:obteniendo el error "No se pudo encontrar el procedimiento almacenado 'sp_OACreate'" en Sql Azure
Could not find stored procedure 'sp_OACreate'
en SQL Azure.
¿Alguien me puede decir cómo ejecutar los métodos de automatización OLE como sp_OACreate
en SQL Azure.
Cualquier ayuda será muy apreciada.
Gracias.
copiado & formato de los programas operativos de respuesta (que debería haber sido una edición):
Estoy tratando de golpear a los servicios de mapas de Google para los compañeros de orinates (Latitud & longitud) de cualquier dirección. Estoy ejecutando consultas por debajo del sql. Su funcionamiento muy bien en el servidor SQL 2005, pero su da un error en SQL Azure 2008.Plz ver más abajo :-(Por favor, sugieren alguna alternativa para este)
DECLARE @Sample TABLE
(
RowID INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
Postal VARCHAR(50) NOT NULL,
ZipCode VARCHAR(50) NOT NULL,
City VARCHAR(50) NOT NULL,
Country VARCHAR(50) NOT NULL,
Status SMALLINT,
Accuracy TINYINT,
Lat DECIMAL(9, 6),
Lon DECIMAL(9, 6),
CreDate DATETIME
)
INSERT @Sample
SELECT 'One Microsoft Way', '98052', 'Redmond, WA', 'USA',null,1,0,0,getdate() UNION ALL
SELECT '170 W. Tasman Dr.', '95134', 'San Jose, CA', 'USA',null,1,0,0,getdate() UNION ALL
SELECT '500 Oracle Parkway', '94065', 'Redwood Shores, CA', 'USA',null,1,0,0,getdate()
select * from @Sample
-- Initialize
DECLARE @url VARCHAR(300),
@win INT,
@hr INT,
@Text VARCHAR(8000),
@RowID int,
@Status smallint,
@Accuracy tinyint,
@Lon decimal(9, 6),
@Lat decimal(9, 6)
SELECT @RowID = MIN(RowID) FROM @Sample WHERE Status IS NULL
WHILE @RowID IS NOT NULL
BEGIN
SELECT @url = 'q=' + Postal + '+' + ZipCode + '+' + City + '+' + Country
FROM @Sample
WHERE RowID = @RowID
SET @url = 'http://maps.google.com/maps/geo?' + @url
SET @url = @url + '&output=csv&key={your google api key here}'
EXEC @hr = sp_OACreate 'WinHttp.WinHttpRequest.5.1', @win OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAMethod @win, 'Open', NULL, 'GET', @url, 'false'
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAMethod @win, 'Send'
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAGetProperty @win, 'ResponseText', @Text OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OADestroy @win
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
SET @Text = REPLACE(REPLACE(@Text, '.', '#'), ',', '.')
SELECT @Status = PARSENAME(@Text, 4),
@Accuracy = PARSENAME(@Text, 3),
@Lat = REPLACE(PARSENAME(@Text, 2), '#', '.'),
@Lon = REPLACE(PARSENAME(@Text, 1), '#', '.')
UPDATE @Sample
SET Accuracy = @Accuracy,
Lat = @Lat,
Lon = @Lon,
Status = @Status,
CreDate = GETDATE()
WHERE RowID = @RowID
WAITFOR DELAY '00:00:00.010'
SELECT @RowID = MIN(RowID)
FROM @Sample
WHERE Status IS NULL
END
SELECT * FROM @Sample
--If Above not executing then first execute below
--sp_configure 'show advanced options', 1;
--GO RECONFIGURE;
--
--GO
--
--sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE;
--
--GO
Quizás pueda describir lo que estaba tratando de lograr aquí, obviamente está intentando usar un componente COM, ¿es un componente común para el que podríamos sugerir alternativas? –