sql >> Databasteknik >  >> Database Tools >> SSMS

SSMS och sp_OAmethod:finns det en datatyp som är större än VARCHAR(8000)?

Jag klappar händerna för mig själv.

Jag erkänner, det är en mardrömslösning men det får saker gjorda. Lösningen var att ställa in:

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

På så sätt skapade jag en tabell med en datatyp som har nvarchar(max) och nu ja, den kan innehålla 65 535 tecken och till 2 GB av data.

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

Skriv om du hittar en bättre lösning, det kommer att uppskattas mycket.



  1. phpMyAdmin:Datumfält visas som BLOB

  2. Fel #1046 - Ingen databas vald SQL-import på XAMPP

  3. Datumintervall för uppsättning av samma data

  4. Anslut EF till SQL Server Management studio