Термин «собственный SQL» относится ко всем операторам, которые могут быть статически перенесены в интерфейс Native SQL интерфейса базы данных. Собственные операторы SQL не входят в языковую область ABAP и не следуют синтаксису ABAP. ABAP просто содержит операторы для изоляции программных разделов, в которых могут быть перечислены собственные операторы SQL.
В нативном SQL могут использоваться в основном специфичные для базы данных операторы SQL. Они передаются без изменений из собственного интерфейса SQL в систему базы данных и выполняются. Можно использовать полную область языка SQL соответствующей базы данных, и не нужно объявлять таблицы адресуемой базы данных в словаре ABAP. Существует также небольшой набор специфичных для SAP операторов Native SQL, которые обрабатываются определенным образом собственным интерфейсом SQL.
Чтобы использовать собственный оператор SQL, вы должны добавить к нему оператор EXEC SQL и завершить оператором ENDEXEC.
Ниже приводится синтаксис —
EXEC SQL PERFORMING <form>. <Native SQL statement> ENDEXEC.
Эти операторы определяют область в программе ABAP, в которой может быть указан один или несколько операторов Native SQL. Введенные операторы передаются в интерфейс Native SQL, а затем обрабатываются следующим образом:
-
Все операторы SQL, которые действительны для программного интерфейса адресуемой системы баз данных, могут быть перечислены между EXEC и ENDEXEC, в частности операторы DDL (язык определения данных).
-
Эти операторы SQL передаются из интерфейса Native SQL в систему базы данных в основном без изменений. Правила синтаксиса определяются системой базы данных, особенно правила учета регистра для объектов базы данных.
-
Если синтаксис допускает разделение между отдельными операторами, вы можете включить много операторов Native SQL между EXEC и ENDEXEC.
-
Специфичные для SAP родные элементы языка SQL могут быть указаны между EXEC и ENDEXEC. Эти операторы не передаются напрямую из интерфейса Native SQL в базу данных, но они соответствующим образом преобразуются.
Все операторы SQL, которые действительны для программного интерфейса адресуемой системы баз данных, могут быть перечислены между EXEC и ENDEXEC, в частности операторы DDL (язык определения данных).
Эти операторы SQL передаются из интерфейса Native SQL в систему базы данных в основном без изменений. Правила синтаксиса определяются системой базы данных, особенно правила учета регистра для объектов базы данных.
Если синтаксис допускает разделение между отдельными операторами, вы можете включить много операторов Native SQL между EXEC и ENDEXEC.
Специфичные для SAP родные элементы языка SQL могут быть указаны между EXEC и ENDEXEC. Эти операторы не передаются напрямую из интерфейса Native SQL в базу данных, но они соответствующим образом преобразуются.
пример
SPFLI — это стандартная таблица SAP, которая используется для хранения информации о расписании рейсов. Это доступно в системах SAP R / 3 в зависимости от версии и уровня выпуска. Вы можете просмотреть эту информацию, введя имя таблицы SPFLI в соответствующую транзакцию SAP, такую как SE11 или SE80. Вы также можете просмотреть данные, содержащиеся в этой таблице базы данных, используя эти две транзакции.
REPORT ZDEMONATIVE_SQL. DATA: BEGIN OF wa, connid TYPE SPFLI-connid, cityfrom TYPE SPFLI-cityfrom, cityto TYPE SPFLI-cityto, END OF wa. DATA c1 TYPE SPFLI-carrid VALUE 'LH'. EXEC SQL PERFORMING loop_output. SELECT connid, cityfrom, cityto INTO :wa FROM SPFLI WHERE carrid = :c1 ENDEXEC. FORM loop_output. WRITE: / wa-connid, wa-cityfrom, wa-cityto. ENDFORM.
Приведенный выше код производит следующий вывод —