Удобный способ вызова SQL запросов в ABAP программах

Периодически возникает потребность сделать запрос к таблицам баз данных или Hana объектам, например calculation view.

Делается это весьма просто.

  1. Нужно создать объект connection к базе данных;
  2. создать объект statement, оболочку для sql запроса;
  3. если это нужно, то получить результаты с помощью специального объекта result set.

После выполнения этого кода, в <result_table> будут находиться результаты запроса из базы данных.

Вызов SQL команды с результирующей структурой

Данную конструкцию можно легко положить в статичный метод глобального класса. Таким образом вызов будет выглядеть следующим образом.

Аналогично, после выполнения этого кода, результат будет в <result_table>. В исходящей переменной comment будет сообщение об SQL ошибке, если такая будет. Формат ошибки получается таким же, как и в SQL консоле. В переменной status будет char из одной позиции, который может принимать 2 значения

  • S — success (успех);
  • E — error(ошибка).

Для удобства я добавил еще пару статических методов.

Вызов SQL команды без результирующей структуры

Аналогично, в исходящих параметрах есть comm и status.

Вызов Hana модели с динамической структурой

В примерах выше, для того что бы вернуть результат запроса, нужно было создавать результирующую структуру result_s. Однако для calculation view, эту структуру можно формировать динамически. Вызов будет следующим.

В <result_table> будет результат запроса

Так же при помощи этого метода, можно получить каталог полей ( field catalog ) Hana модели, путь, название схемы и имя модели, не выполняя при этом сам запрос.

Исходный код класса zcl_sql_executor

Полный исходный код можно найти по ссылке

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *