Единственное решение - использовать native SQL, то есть SQL вашей базы данных.
Native SQL может работать в нескольких вариантах.
Самый короткий, но и самый старый код (SAP рекомендует его не использовать) с оператором EXEC SQL
:
DATA text TYPE string.
EXEC SQL PERFORMING sr.
SELECT text FROM sotr_textu INTO :text WHERE text LIKE '%e%'
ENDEXEC.
FORM sr.
WRITE / text.
ENDFORM.
Примечание: приведенный выше код отлично работает с HANA , Базы данных MS SQL и Oracle, но необходимо указать имена таблиц и столбцов в верхнем регистре с помощью MaxDB.
Пример более сложного запроса:
DATA: text TYPE string,
status TYPE string.
status = 'R'.
TRY.
EXEC SQL PERFORMING sr.
SELECT TEXT FROM SOTR_TEXTU INTO :text
WHERE STATUS = :status
AND TEXT LIKE '%e%'
ENDEXEC.
CATCH cx_sy_native_sql_error INTO DATA(exc).
cl_demo_output=>display( exc->get_text( ) ).
ENDTRY.
FORM sr.
WRITE / text.
ENDFORM.
для поиска без учета регистра:
AND UPPER(TEXT) LIKE UPPER(:text)
Другие способы: ADB C и AMDP .
ADB C заменено EXEC SQL
.