SSMS
 sql >> Base de données >  >> Database Tools >> SSMS

SSMS et sp_OAMethod :existe-t-il un type de données supérieur à VARCHAR(8000) ?

Je tape des mains pour moi-même.

J'avoue que c'est une solution cauchemardesque mais ça fait avancer les choses. La solution consistait à définir :

Declare @Response as table(Json_Table nvarchar(max))

De cette façon, j'ai créé une table avec un type de données qui a nvarchar(max) et maintenant oui, il peut contenir 65 535 caractères et jusqu'à 2 Go de données.

Declare @Object as Int;
DECLARE @hr  int
Declare @Response as table(Json_Table nvarchar(max))

Exec @hr=sp_OACreate 'MSXML2.ServerXMLHTTP.6.0', @Object OUT;
Exec @hr=sp_OAMethod @Object, 'open', NULL, 'get',
                 'http://overpass-api.de/api/interpreter?data=[out:json];area[name="Auckland"]->.a;(node(area.a)[amenity=cinema];way(area.a)[amenity=cinema];rel(area.a)[amenity=cinema];);out;', --Your Web Service Url (invoked)
                 'false'
Exec @hr=sp_OAMethod @Object, 'send'
Exec @hr=sp_OAMethod @Object, 'responseText', @Response OUTPUT

INSERT into @Response (Json_Table) exec sp_OAGetProperty @Object, 'responseText'

select * from @Response

EXEC sp_OADestroy @Object

S'il vous plaît poster si vous trouvez une meilleure solution, ce sera très apprécié.