5

SQL Azureデータベースにsp_OACreateストアドプロシージャを実行しようとしました。次のエラーが発生しています。エラーが発生しましたSQL Azureのストアドプロシージャ 'sp_OACreate'が見つかりませんでした

Could not find stored procedure 'sp_OACreate'

(SQL Azure)

SQL Azureでsp_OACreateのようなOLEオートメーションメソッドを実行する方法を教えてもらえますか?

ご協力いただければ幸いです。

ありがとうございました。 OPから書式&をコピーし


が(編集されている必要があります)答え:

私は、任意のアドレスの共同orinates(緯度&経度)を取得するには、Googleのマップサービスをヒットしようとしています。私はSQLクエリの下で実行しています。 SQL Server 2005でその作業罰金が、SQL Azureの2008.Plzでその与えるエラーが

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

おそらく、あなたがここで達成しようとしていたことを記述することができます - あなたは明らかにCOMコンポーネントを使用しようとしています - 代替案を提案できる一般的なコンポーネントですか? –

答えて

0

sp_OACreateオートメーションストアドプロシージャで、SQL Azureデータベースでは使用できません)下記参照:-(このためのいくつかの代替を提案してください。

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

の回避策がある場合、私は非常に驚くだろう。

+0

私は自分の問題を説明している、plzチェックし、いくつかの代替を提案する。 – kapil

+0

わからない既に提案されているもの以外のものがあるとは思わないでください。 SQL Azureからロジックを移動します。 –

1

SQL Azure内からWebサービスを呼び出す手段はありません。そのような呼び出しを、Windows Azure(SQL Azureとは対照的に)サービスで実行されているコードに移動する必要があります。 Transact SQLで記述してください。

関連する問題