5

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 
+0

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? –

Respuesta

0

sp_OACreate es un procedimiento almacenado de automatización y no está disponible en la base de datos SQL Azure

http://msdn.microsoft.com/en-us/library/ee336237.aspx

estaría muy sorprendido si hay alguna solución.

+0

He descrito mi problema, compruebe por favor y sugiera algo alternativo para esto. – kapil

+0

No lo sé. No pienses que hay uno más de lo sugerido. Mueva la lógica de SQL Azure. –

1

No hay forma de llamar a los servicios web desde SQL Azure: tendrá que mover esas llamadas al código que se ejecuta en un servicio Windows Azure (en lugar de SQL Azure), y no lo hará escribirlo en Transact SQL.

Cuestiones relacionadas