SQL LIKE "% ..." в HTTP-запросе VBA - PullRequest
       12

SQL LIKE "% ..." в HTTP-запросе VBA

0 голосов
/ 11 декабря 2018

Я пытаюсь выполнить запрос SOQL к API REST Salesforce в макросе в Excel.Я использую оператор LIKE, чтобы проверить, существуют ли какие-либо адреса электронной почты с тем же доменом, который выглядит следующим образом:

q=SELECT+email+FROM+Contact+WHERE+email+LIKE+'%@domain.com'

Это просто параметр, указанный в HTTP-запросе, домен является заполнителем.

Когда я выполняю тот же самый запрос с помощью Почтальона, я получаю правильный ответ от сервера , однако в Excel я получаю ошибку 400 bad request.

При отбрасывании % он принимает запрос, но затем, очевидно, не находит записей, поскольку ищет точную строку "@domain.com".

Известны ли какие-либо проблемы с знаком % в vba?Или какие-то другие предложения, в чем может быть проблема?

1 Ответ

0 голосов
/ 11 декабря 2018

Проблема не в VBA, а в вашем HTTP-запросе.Вы должны экранировать знак процента (%), который является специальным символом.Я думаю, почтальон делает это для вас под капотом.

Следовательно, попробуйте:

q=SELECT+email+FROM+Contact+WHERE+email+LIKE+'%25@domain.com'

См .: https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_the_percent_character

Если этого недостаточно для запросауспешно, вы можете также избежать знака аробаса (@):

q=SELECT+email+FROM+Contact+WHERE+email+LIKE+'%25%40domain.com'
...