T-SQL: вставить переменную в объявленный URL - PullRequest
0 голосов
/ 11 октября 2018

У меня есть простая проблема, которую я не могу решить.

Если вы посещаете этот URL с помощью браузера:

http://overpass -api.de / api / interpreter? Data = [out: json]; area [name = "Окленд"] ->. a; (node ​​(area.a) [amenity = cinema];); out;

OSM вернет вам все кинотеатры в Окленде в формате JSON.

Я хотел бы динамически запросить это через T-SQL, но прежде всего мне нужно выяснить, как вставить переменную названия города в URL:

DECLARE @place as NVARCHAR(30) SET @place = 'Auckland'

DECLARE @URL as VARCHAR(MAX) 
SET @URL = 'http://overpass-api.de/api/interpreter?data=[out:json];area[name="' + @place +'"]->.a;(node(area.a)[amenity=cinema];);out;';

Это объявлениене работает и SSMS фосфатирует его красным:

enter image description here

Не уверен, как выйти из этой проблемы.

Я следовалнесколько направляющих, но все они говорят, что используют ' + @variable + ', но в моем случае не работает.

Почему?

1 Ответ

0 голосов
/ 11 октября 2018

Это просто синтаксическая окраска редактора.Вы можете настроить его в своей IDE.

Обратите внимание, что вы можете сделать это тоже:

DECLARE @place as VARCHAR(30) = 'Auckland'

DECLARE @URL as VARCHAR(MAX)=FORMATMESSAGE('http://overpass-api.de/api/interpreter?data=[out:json];area[name="%s"]->.a;(node(area.a)[amenity=cinema];);out;',@place) ;
...