Вы можете использовать Verbatin Strings для этой цели.
sql_select_country : STRING = "[
SELECT *
from COUNTRY
]"
-- Select all country
Для динамического построения запросов SQL вы можете определить шаблон
с заполнителями, а затем заменить их ожидаемыми значениями.
template_query : STRING = "[
SELECT
*
FROM
enumerate
WHERE
$Primary_key_db_column_name = :id
UNION
SELECT
e.*
FROM
enumerate e
INNER JOIN
enumerates_leaves s ON s.$Primary_key_db_column_name = e.$Category_db_column_name
) SELECT * FROM enumerates_leaves WHERE enumerates_leaves.$Category_db_column_name IS NOT NULL;"
]"
-- Template query `query_name` ....
Использование шаблона
l_query: STRING
create l_query.make_from_string (template_query)
l_query.replace_substring_all ("$Primary_key_db_column_name", {like item_prototype}.Primary_key_db_column_name)
...
На самом деле, эту идею можно обобщить в виде чего-то вроде
sql_query_builder (query_template: READABLE_STRING_GENERAL; arguments: ITERABLE [READABLE_STRING_GENERAL]) :STRING