SQL Bing XML数据-@Responsetext始终为空
我创建了一个从Bing的xml数据中检索TravelDistance的过程,但是@ResponseText总是空的。我可以让它与谷歌合作,但不能与必应合作。我已经从Bing的API网站上硬编码了这个示例,我可以看到XML和@ServiceUrl,但是SQL Bing XML数据-@Responsetext始终为空,xml,bing-api,Xml,Bing Api,我创建了一个从Bing的xml数据中检索TravelDistance的过程,但是@ResponseText总是空的。我可以让它与谷歌合作,但不能与必应合作。我已经从Bing的API网站上硬编码了这个示例,我可以看到XML和@ServiceUrl,但是 Exec sp_OAMethod@Object,'responseText',@responseText输出 为@Object提供一个值,为@ResponseText仅提供NULL ` Declare @Object as Int; Decl
Exec sp_OAMethod@Object,'responseText',@responseText输出
为@Object提供一个值,为@ResponseText仅提供NULL
` Declare @Object as Int;
Declare @ResponseText as nvarchar(max);
Declare @serviceUrl as varchar(max)
--set @serviceUrl = 'http://maps.googleapis.com/maps/api/distancematrix/xml?origins=' +@ToAddress+@ToCity+@ToState+@ToPostCode+
-- '&destinations=' +@FromAddress+@FromCity+@FromState+ @FromPostCode +'&mode=driving&language=en-EN&units=imperial;'
set @serviceUrl = 'https://dev.virtualearth.net/REST/v1/Routes/Truck?wp.0=590%20Crane%20Ave%2C%20Pittsburgh%2C%20PA&wp.1=600%20Forbes%20Ave%2C%20Pittsburgh%2C%20PA&vehicleHazardousMaterials=Flammable&output=xml&key=XXXXXXXXXXXXXXXX'
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',
@serviceUrl, --Your Web Service Url (invoked)
'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
declare @result table(data text)
Declare @Response as XML
SELECT @Response response, @ResponseText responsetext,@serviceUrl serviceurl
Select @ResponseText as XMLList
SET @Response = CAST(@ResponseText AS XML);
Declare @Status as varchar(20)
Declare @Distance as varchar(20)
Declare @Time as varchar(20)
--
set @Status= @Response.value('(Response/ResourceSets/ResourceSet/Resources/Route/BoundingBox/TravelDistance)[1]', 'varchar(20)')
print @Status
if(@Status='ZERO_RESULTS')
Begin
set @Distance=@Status
End
else
Begin
-- set @Distance=@Response.value('(DistanceMatrixResponse/row/element/distance/text)[1]', 'varchar(20)')
set @Distance=@Response.value('(Response/ResourceSets/ResourceSet/Resources/Route/BoundingBox/TravelDistance)[1]','varchar(20)')
-- set @Time=@Response.value('(DistanceMatrixResponse/row/element/duration/text)[1]', 'varchar(20)')
End
-- Select @Response.value('(DistanceMatrixResponse/row/element/distance/text)[1]', 'varchar(10)') as Distance
-- select (cast(replace(@Distance,' km','') as numeric)/2) + ((cast(replace(@Distance,' km','') as numeric)/2)/4) as Distance, @Time as Time
select @Distance as Distance`
我遗漏了什么?回复有多大
sp_-OAMethod
似乎对其可以处理的内容有大小限制。大小过大。我如何绕过限制?