Время чтения ~5 мин.
Здравствуйте друзья мои! С вами.. кх..кх…
Всем привет!
Сегодня мы наконец разберемся с тем, зачем в Open SQL начиная c релиза 7.40, SP05 используется символ @.
Информация будет полезна начинающим abap-разработчикам и консультантам, которые нет-нет, да напишут что-нибудь эдакое).
Итак, для начала обратимся к справке, которая говорит нам, что
«Хост-переменные — это глобальные или локальные переменные (обычно переменные), объявленные в ABAP программе, которые используются в позициях операндов операторов Open SQL.
Содержимое хост-переменных в позициях чтения передается в систему базы данных вместе с оператором SQL перед его выполнением. Содержимое хост-переменных в позициях записи берется из системы базы данных после завершения оператора SQL«.
Таким образом, хост-переменные — это все те же переменные, которые вы использовали раньше. Изменилось только то, что теперь их необходимо экранировать.
Первая мысль, которая приходит на ум — зачем?
Ответ прост:
Начиная с версии 7.40, SP05 в Open SQL стали доступны новые функции, которые обрабатываются новым SQL парсером в ABAP ядре. Так вот, для того, чтобы компилятор понял, что необходимо использовать новый парсер, abap переменные необходимо экранировать. В Open SQL в качестве экранирующего символа выбрана @.
В завершении рассмотрим простой пример:
Наверняка вы совсем недавно писали запрос в похожем стиле.
Однако, на сегодняшний день правильным будет экранировать хост-переменные, даже несмотря на то, что новые функции в данном примере не выполняются.
На этом все, спасибо за прочтение!
Изображение на заставке позаимствовано здесь.